Ray*_*Ray 5 linux security permissions webserver
在我的学校,我们有一个共享服务器环境,其中包含多个用户和多个组。
相关组:
students
daemon
(运行阿帕奇)
我想让学生能够完全访问他们拥有的文件,而不能访问其他学生的文件。两个不同的学生甚至不应该看到彼此的文件。
我还希望 apache 能够读取和执行所有学生文件。具体来说,我希望 apache 能够读取每个学生拥有的密码文件,我还希望密码文件的所有者可以完全访问它。
根据我的理解,最好的方法是将密码文件的组所有者更改为 apache。
所以看完这篇之后,
https://serverfault.com/questions/357108/what-are-the-best-linux-permissions-to-use-for-my-website
似乎一个简单的 chgrp 可以解决它。
但后来我遇到了这个:
您必须是文件的所有者以及目标组(或根)的成员才能使用此操作。
所以每个学生都不是守护进程组的一部分,他们不能运行这个命令。给他们那个组是没有意义的,因为他们也可以看到其他学生的密码文件。
从上一个帖子中,我了解到当前的安全设置不合适,我已安排与我的系统管理员会面。
但我仍然不确定我应该让我的系统管理员做什么。
我真的不能让他手动更改服务器上每个密码文件的权限,文件名和位置不同,许多学生甚至还没有设置。
允许学生完全访问 chgrp 似乎很危险,
我的倾向似乎是要求他创建某种类型的脚本,提示学生输入文件,然后运行 chgrp 代替学生,从而赋予 apache 组所有权。这似乎可行,但也很复杂,因为我对 Linux 还是很陌生。这样的事情,他能轻易做到吗?
我也考虑过 ACL,但我的思路又回到了 chgrp,让学生访问 setacl 似乎很危险。
ACL 就是答案。学生不需要任何特殊的权限来运行setfacl
,用户可以设置他拥有的任何文件的ACL。
如果您需要为 ACL 设置系统,请参阅使目录中的所有新文件可供组访问
告诉学生,如果他们需要 Apache 可以访问的文件,那么他们必须运行
setfacl -m group:daemon:r ~/path/to/password.file
setfacl -m group:daemon:x ~ ~/path ~/path/to
Run Code Online (Sandbox Code Playgroud)
x
访问这些目录中的文件(包括子目录)需要目录的权限。
归档时间: |
|
查看次数: |
2515 次 |
最近记录: |