Web 服务器的目录权限

Web 服务器的目录权限

我遇到了与服务器上目录的权限有关的问题。文件权限最初读取drwx--S---,并且我能够与以目录所有者身份登录的 FTP 客户端连接并管理目录,但是当我尝试从浏览器查看它们时,我收到“禁止”消息,指出我没有权限查看文件。我注意到如果我使用

sudo chmod -R 644 my_directory

它将目录的权限更改为drw-r-Sr--然后使用

sudo chmod g+x my_directory

将目录的权限更改为drw-r-sr--,我可以从任何浏览器读取文件,但无法再通过 FTP 传输或查看文件到该目录。

答案1

根据你的问题,我将做出一个假设。 Web 服务器进程与目录的组所有权位于同一组中。

您从目录权限中删除了执行 (x) 位,只将其返还给组。这意味着该目录所有者没有执行权限,并且需要能够更改/遍历目录。由于这个原因,使用具有绝对权限的 chmod -R 可能会很危险。我建议您执行以下操作:

修复您的目录权限。

sudo find my_directory -type d -exec chmod 2750 {} \;

由于您破坏了目录遍历,因此您可能需要多次执行此操作。如果您在运行上述命令时收到任何权限错误,请重新运行它,直到这些错误清除。

修复您的文件权限。

sudo find my_directory -type f -exec chmod 0640 {} \;

完成此操作后,您的目录应具有以下权限。

drwxr-s---

并且您的文件应该具有以下权限。

-rwxr-x---

如果您想更好地了解 UNIX 权限,我建议您阅读人 2 chmod。这当然是枯燥的阅读,但它解释了每一位的含义。

相关内容