Linux目录权限读写但不删除

时间:2009-05-15 16:01:37

标签: linux file-permissions

是否可以设置目录权限,以便组能够读取和写入文件和子目录但不能删除任何内容?

3 个答案:

答案 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字节文件覆盖并不等同于在特定上下文中删除文件。