我们正在 CentOS 上配置一个 PHP Web 应用程序,并且我们所有的文件当前都在 /var/www/html/project/
Apache 被配置为作为 apache:apache 运行并且可以访问上面的目录。现在我们的文件和目录具有以下权限:
所有者 = 根组 = apache
目录:drwxr-x---root apache
文件:-rw-r-----root apache
这是一个安全的设置吗?还是使用新用户(例如“项目”)作为所有文件和目录的所有者更好?
我们正在 CentOS 上配置一个 PHP Web 应用程序,并且我们所有的文件当前都在 /var/www/html/project/
Apache 被配置为作为 apache:apache 运行并且可以访问上面的目录。现在我们的文件和目录具有以下权限:
所有者 = 根组 = apache
目录:drwxr-x---root apache
文件:-rw-r-----root apache
这是一个安全的设置吗?还是使用新用户(例如“项目”)作为所有文件和目录的所有者更好?
让所有者成为用于上传/管理服务器上文件的任何受限用户帐户是最佳实践。该组通常是运行 php 的帐户,因此在这种情况下 apache 是正确的。其他权限应该设置为空,因为它们是。你已经接近完美了。
如果您遇到多个帐户可能正在修改/编辑文件的情况,您可以创建一个 cron 脚本,每隔一小时左右递归地 chowns dir 以保持正确的所有权。同样的技术也可以保持权限正确。
此外,您可能希望将拥有所有权的受限用户帐户的 umask 修改为与您的权限方案一致。
你肯定玩得很安全。
如果您需要通过 apache 按需创建,您的设置将阻止您在 DIRECTORIES 中创建其他文件夹。
我建议您使用以下权限:
将您的开发人员添加到 apache 组,以便在他们通过 ssh 或 ftp 登录时可以继续写入这些文件。
如果您可以信任运行它们的用户,您可以拥有自由的文件权限。如果您的代码是可靠的,那么您可以允许 apache 组使用权限做更多事情。
编辑:一般给apache:
最后归结为只提供您必须的权限。使它们尽可能保守,并在需要时在开发应用程序时开放它们。
关于团体的一件小事。您将看到一些显示这一点的示例(这些也是正确的设置):
运行 Web 应用程序需要这些权限,因为apache 用户不是组权限的一部分。在这种情况下,apache 被认为是所有人,因此您需要设置权限以允许所有人与您的网站进行交互。每个人我并不是指世界上的每个人(即匿名)。我的意思是每个当前是您服务器上的用户的人(查看 /etc/passwd 以获取列表)。