是否可以设置目录权限,以便组能够读取和写入文件和子目录但不能删除任何内容?
答案 0 :(得分:47)
在目录上设置粘滞位可能就足够了。用户将能够删除他们拥有的任何文件,但不能删除其他用户的文件。这可能足以满足您的使用需求。在大多数系统上,/ tmp以这种方式设置(/ tmp设置为1777)
chmod 1775 / control
但是,如果您想要更多控制,则必须在相关文件系统上启用ACL。
在/ etc / fstab中,将acl附加到标志:
/dev/root / ext3 defaults,acl 1 1
然后,您可以使用setfacl / getfacl来控制和查看acl级别权限。
示例:(创建文件,一旦写入,它们是只读的,但可以由所有者删除,但不能由其他人删除。)
setfacl --set u::rwxs,g::rwx /controlled
setfacl -d --set u::r-x,g::r-x,o::- /controlled
您可以在将在其中创建的所有文件使用的目录上设置默认的acl列表。
正如其他人所说,要小心确切地说明你想要的东西。你说“写” - 但是用户可以覆盖自己的文件吗?他们可以更改现有内容,还是仅追加?一旦写完,它是只读的吗?也许您可以在评论中指定更多细节。
最后,selinux和grsecurity提供了更多的控制权,但这是另外一种蠕虫。它可以完全参与设置。
答案 1 :(得分:15)
嗯,这个目录就是r-x。
其中的文件会有rw - 。
这是因为如果文件的权限允许写入,则可以写入文件,但只有当目录的权限允许写入时才能删除它。
答案 2 :(得分:2)
可能与否,确保用0字节文件覆盖并不等同于在特定上下文中删除文件。