Linux目录权限读写但不能删除

是否有可能设置目录权限,使一个组能够读取和写入文件和子目录,但不删除任何东西?

在目录上设置粘性位可能就足够了。 用户将能够删除他们自己的任何文件,但不能删除其他用户的文件。 这对您的使用情况可能已经足够了。 在大多数系统上,/ tmp是以这种方式设置的(/ tmp被设置为1777)

chmod 1775 /控制

但是,如果您需要更多的控制权限,则必须在有问题的文件系统上启用ACL。

在/ etc / fstab中,将acl附加到标志:

/dev/root / ext3 defaults,acl 1 1 

然后可以使用setfacl / getfacl来控制和查看acl级别权限。

例如:(创build文件,一旦写入,它们是只读的,但可以被所有者删除,但不能被其他人删除。)

 setfacl --set u::rwxs,g::rwx /controlled setfacl -d --set u::rx,g::rx,o::- /controlled 

您可以在目录上设置一个默认的acl列表,所有在那里创build的文件将被使用。

正如其他人所指出的,要小心地指定你想要的东西。 你说“写” – 但用户可以覆盖自己的文件? 他们可以改变现有的内容,或只是追加? 一旦书面,它是只读的? 也许你可以在评论中指定更多的细节。

最后,selinux和grsecurity提供了更多的控制权,但是这是另外一种蠕虫。 这可能是相当重要的设置。

那么,这个目录就是rx了。

其中的文件将会有rw-。

这是因为如果文件的权限允许写入,则可以写入文件,但是只有在目录的权限允许写入的情况下才能删除文件

可能与否,请确保用0字节的文件覆盖不等于删除特定上下文中的文件。