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