我在 Debian Lenny 上运行 nginx。我的机器上有很多人,他们的主文件夹中都有“http”目录,我为这些目录配置了 nginx vhosts。
问题是:如何才能使只有用户和 nginx 可以读取用户主目录中的文件?
答案1
对此有不同的选择,但一种选择是将 http 文件夹中的权限设置为只读,并且该组是用户的组(即 kbrandt)。然后只需将 nginx 添加到 kbrandt 组即可。这种方法的缺点是,如果用户的组有权访问其他内容,则 nginx 用户理论上可以在该 http 目录/vhost 被“分离”的情况下读取它。
答案2
确保“http”目录权限至少为“1750”。
所有权应该像“用户名:nginx”,从“http”目录开始递归。
只需安装 OnDirhttp://swapoff.org/ondir.html并正确配置它。您还可以将它与通过 cronjob 执行它的简单 BASH 脚本相结合。作为启动脚本的示例,您可以使用以下几行来开发您自己的需求。
chmod 1750 /home/用户名/http
查找 /home/用户名/http -type d -exec chmod 1750 '{}' ';'
查找 /home/用户名/http -type f -exec chmod $PERMFILE '{}' ';'
chown -R 用户名:nginx /home/用户名/http