![更改 Web 服务器上的文件权限以遵循最小特权安全原则:chmod 750 -R /](https://linux22.com/image/627505/%E6%9B%B4%E6%94%B9%20Web%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84%E6%96%87%E4%BB%B6%E6%9D%83%E9%99%90%E4%BB%A5%E9%81%B5%E5%BE%AA%E6%9C%80%E5%B0%8F%E7%89%B9%E6%9D%83%E5%AE%89%E5%85%A8%E5%8E%9F%E5%88%99%EF%BC%9Achmod%20750%20-R%20%2F.png)
我不确定哪些细节是相关的,但这里有一些一般背景。我正在 AWS 上配置一个 Ubuntu 12.04 网络服务器,以处理客户付款信息,然后将他们重定向到托管的支付页面,该页面不会返回交易详细信息以供进一步处理。预托管的支付页面处理将涉及远程连接到我们的内部数据库,以便可以验证客户信息并返回帐户详细信息以供显示。
我是唯一管理服务器的人。大多数目录和文件的默认权限似乎是 755,所有者是 root:root。在尝试遵循最小特权的安全原则时,我在考虑删除所有全局读取/执行权限,以便服务器根目录保留 750,将自己添加到根组以保持可用性。我让 Apache 以 www-data 身份运行,并且我已将 Web 根目录的权限设置为 2750,将所有者设置为 root:www-data — 将自己添加到 www-data 组以提高可用性。
将系统 umask 从默认的 022 更改为 027 似乎很常见,这样任何新创建的文件的权限都是 750 而不是 755,但我还没有遇到任何关于对整个文件系统进行这种“追溯”更改的说法。这是一个好主意吗?有没有正确的方法来实现它?
答案1
不要这样做,你的网络服务器将不再有权限读取任何事物在盒子上。您需要从文件系统的根目录一直到 Web 服务器将要读取的目录的权限。
这就是为什么你找不到任何人谈论这样做的原因,它行不通。你的网络服务器以 root 身份启动,但在绑定到特权端口后,它立即更改为另一个用户。
即使删除 -R 也不起作用。chmod 750 /
在您的机器上运行,然后尝试加载网页。