共享 linux 服务器上的可执行权限和读取权限之间的实际区别是什么,这意味着,这与 Web 访问者可以做什么(例如 php 文件)究竟有什么关系?使用 Godaddy 共享主机,例如,在基本权限下,如果 web 用户不可读,但可执行,则与可读但不可执行的情况相同 - 执行 php 文件。此外,在共享的 linux 服务器上,使文件对 web 用户可写究竟是什么——一个无权访问服务器登录但通过浏览器访问页面的人呢?
2 回答
基本答案是:没有。网站的访问者不会直接访问任何文件,PHP 或其他文件。他们向计算机(例如:Apache)上的服务器服务(哇,这是可怕的措辞)发送一个 HTTP 请求,然后加载页面,执行 PHP 等。所以当您更改权限时,相关的权限要更改是 Apache 帐户(取决于发行版,可以是nobody
或www-data
)对这些文件的权限。至于权限的实际作用,这个维基百科页面描述得很好。
如果你有一个 Linux 机器,你可以自己测试一下。获取一个包含文件的目录和sudo chmod -R 744
它。然后,尝试ls -l
进入它。您将能够看到文件名,但看不到有关文件的任何其他信息(包括内容 -nano
该目录中的任何文件都将导致创建一个新文件)。
您必须记住,所有这些都取决于 Web 服务器想要做什么,因为一切都必须通过 Web 服务器。这不像从磁盘读取文件。因此,当您请求“index.php”或“index.cgi”时,您并没有读取文件的内容。Web 服务器将看到您请求的文件是一个程序,它将运行该程序。它不会输出文件的内容,而是输出程序输出的任何内容。这只是一个设置,与权限无关。此外,如果您使用的是共享主机帐户,则无法更改此设置。
在共享的 linux 服务器上,使文件可写 [...] 到底是做什么的?
您不能使用 HTTP 使文件“可写”。同样,这不像访问本地驱动器上的文件系统。您可以制作一个可以处理文件上传的服务器端程序,但同样,这与权限无关。
我希望这就是你的意思。让我知道你是否还有别的意思。