是否可以设置目录权限,使组能够读取和写入文件和子目录但不能删除任何内容?
问问题
100827 次
3 回答
52
在目录上设置粘性位可能就足够了。用户将能够删除他们拥有的任何文件,但不能删除其他用户的文件。这对于您的用例可能已经足够了。在大多数系统上,/tmp 以这种方式设置(/tmp 设置为 1777)
chmod 1775 /受控
但是,如果您想要更多控制权,则必须在相关文件系统上启用 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 提供了更多的控制,但这是完全不同的蠕虫。设置可能非常复杂。
于 2009-05-15T16:33:05.230 回答
17
好吧,这将是这个目录的 rx。
并且其中的文件将具有 rw-。
这是因为如果文件的权限允许写入,则可以写入文件,但只有在其目录的权限允许写入时才能将其删除。
于 2009-05-15T16:04:04.800 回答
3
可能与否,请确保用 0 字节文件覆盖并不等同于在您的特定上下文中删除文件。
于 2009-05-15T16:07:19.970 回答