Linux 中用户/组权限的详细指南

Linux 中用户/组权限的详细指南

我确信这个问题之前已被问过很多次了,但是我找不到一份关于 Linux 文件/文件夹权限的详细指南。

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

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

答案1

您附近的搜索引擎上有大量信息可供使用。文件系统权限这篇文章非常好。

您还会在这个问题中找到有用的信息:NGinx 和 PHP 应该以什么用户身份运行?

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

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

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

答案2

我发现解决这个问题的最佳方法是使用 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”具有相同的访问级别,而不管标准文件权限如何规定。此外,在此目录中创建的新文件和目录将继承相同的权限。

答案3

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

相关内容