这可能就足以设置目录上的粘滞位。用户将能够删除他们拥有的任何文件,但不能删除其他用户的文件。这可能足以满足您的用例。在大多数系统上,/ tmp以这种方式设置(/ tmp设置为1777)
chmod 1775 / controlled
然而,如果你想要更多的控制,你必须在有问题的文件系统上启用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提供了更多的控制,但这是一个完整的其他可能的蠕虫。它可以相当参与设置。