最近几天我一直在学习如何设置 var/www/ 权限。
我理解常见的解决方案是通过粘性位将所有新文件夹的组所有者设置为 Apache。那么如何为 Apache 赋予某些用户所属的辅助组“管理员”呢?这似乎是一种更灵活的方法,因为这样,管理员上传的所有脚本 Apache 都将具有写入权限,而其他不太受信任的用户则没有。
这种方法的安全漏洞是什么?从安全性方面来看,与简单地将文件夹所有者设为 apache 主要组 - apache 相比,它如何?
答案1
指定所有者root:root
可能是最“安全”的。它可以防止除 root 之外的任何人更改文件。
使所有者apache:apache
仅允许 root 或 apache(以及根据权限的 apache 组成员...与上面相同...如果您授予组写权限..该组将获得写权限..)
当我们有多个合作者在一个较大的网站上工作时,我们会将其设置为 apache 为所有者,一个名为 的组webdevel
为所有者。这两个都有写入权限……
回想起来,最安全的方法(同时为开发人员提供理智)可能是root:admins
按照您的示例分配给任何apache
本身不需要写入的文件。如果 Apache 对文件具有写访问权限,则服务器受到损害将意味着用户可以更改用户所需的任何文件apache
。您应该考虑保护您的网站文件来自你的网站服务器出于这个原因。只需将配置文件的所有权交给 apache需求更改或文件夹需求上传(例如图像上传目录)。
现在如果你有 apache 不应该写入但应该能够读取的文件..但所有其他非 root&&非管理员用户应该不是能够读取(带有密码的配置文件),或者:
1)采用更复杂的ACL
或者
2)将恶意的不可信内容拒之门外
或者
3)将不值得信任的用户关进监狱。