背景
我最近在一台我有root访问权限的主机上设置了一个基于php的网站。我按照linode.com上的指南安装了一个基于lamp的设置,现在我想知道该如何处理php文件权限、目录权限,以及哪些用户应该在哪些组中运行哪些进程。
特别是,我想知道“标准的php网站在ACLs、所有权和生产ids方面应该如何配置?”这个问题的答案。
目前,任何目录列表都会返回以下内容:
-rw-r--r-- 1 root root 70 Nov 8 17:17 index.php
我看到Apache网服务器运行为名为
www-data
的用户,因此我可以假设php将作为同一用户运行(可能是将继承相同用户的子进程)。对所有文件设置
chmod 640
并将自己(用户bob
)设置为所有者是否有问题?创建一个名为productionIDs
的组,其中包含www-data
用户,并将文件的组设置为productionIDs
是否合适?在我看来,这样以最小特权为安全。除了我自己和Web服务器之外还有谁?只有我需要编写文件,Web服务器只需要读取。没有其他人需要做任何事情。
我的设置无法处理存在多个开发人员的情况,但我不确定该情况应该是什么样子。
那么,
640
拥有者是我,组Web服务器组是否存在任何风险?如果有,相应的目录750
也安全吗?如果不是,为什么没有更多人使用这种配置?
在“尝试并查看”理论下,它可以正常工作。因此,问题现在包括“此配置不允许什么/此配置的缺点是什么”的方面。
urw&gr
)以及750意味着什么(urwx&grx
)。将其简化到这一点,我首先看到的是一个配置问题。这在很大程度上取决于Web服务器的配置以及如何调用PHP,并基于该配置允许系统资源的PHP脚本允许或不允许。此外,我无法理解您在问题中写的内容,关于“为什么其他人不这样做”。对我来说,它看起来更像是一个常见的设置,而不是一个不常见的设置。 - hakre