在Linux中用户/组权限的体面指南

我确信这已经被问过很多次了,但是我无法得到一个体面的Linux指南文件/文件夹权限。

我想要的是用PHP和像vsftpd这样的FTP服务器来设置一个nginx / apache服务器。 我通常得到的问题是Web服务器在通过FTP帐户上传时无法读取文件,或根本无法上传到服务器。 我的PHP脚本也需要运行一个命令行工具,因此需要通过服务器运行适当的权限。 我通过尝试chmodding或chowning来解决所有这些问题,但我仍然对安全设置没有信心。

是否有任何教程/书籍可以帮助我以实际的方式正确地学习概念?

在您最近的search引擎上有大量的信息。 文件系统权限文章是相当不错的。

你也可以在这个问题中find有用的信息: NGinx和PHP运行的用户是什么? 。

两篇看起来很有趣的文章:

http://www.comptechdoc.org/os/linux/usersguide/linux_ugfilesp.html

http://crunchtools.com/unixlinux-filesystem-permissions-101/

我发现解决这个问题的最好方法是使用POSIX ACL。 通常这四个命令会给你你想要的。

setfacl -Rdm apache:rwx my/dir setfacl -Rm apache:rwx my/dir setfacl -Rdm user:rwx my/dir setfacl -Rm user:rwx my/dir 

这将设置一个ACL,允许用户“user”和用户“apache”具有相同的访问级别,而不pipe标准文件权限如何。 此外,在此目录中创build的新文件和目录将inheritance相同的权限。

如果您不关心从一个PHP访问其他站点的PHP文件 – 您可以使用全部映射到apache用户的虚拟FTP用户,并且所有documet_root也都由apache用户拥有。