防止删除文件夹但允许访问其中的所有内容

防止删除文件夹但允许访问其中的所有内容

我知道文件和目录有 +i 标志,但我有一个更深层次的问题。

有没有办法防止有权创建/访问/删除文件和文件夹的用户删除文件夹里面删除保护的文件夹?

sudo chattr +i testfolder标志无用,因为用户只能读取文件,而不能创建或删除文件。

sudo chattr +a testfolder标志不会有帮助,因为用户可以写入和读取文件,但只能附加编辑文件而不能删除它们。

我需要一个解决方案,让用户可以写入、访问删除文件但不能删除根/父文件夹。

答案1

这基本上就是 /tmp 文件夹的用途。因此,只需设置与 /tmp 相同的权限即可:

chmod --reference=/tmp testfolder

应该testfolder由不同的用户(例如 root)拥有。该用户将能够访问wrxtestfolder 下的文件和文件夹,但不能删除或修改 testfolder。

例如:

[root@host ~]# mkdir /test
[root@host ~]# chmod --reference=/tmp /test
[root@host ~]# ls -ld /test
drwxrwxrwt 2 root root 4096 Feb 15 09:33 /test/
[root@host ~]# su - user
[user@host ~]$ mkdir /test/foo
[user@host ~]$ rm -fr /test
rm: cannot remove `/test': Permission denied

如您所见,user可以在下创建文件和目录/test,但不允许删除它。

相关内容