在 FreeNAS (FreeBSD) 上...我正在尝试使文件夹变得“不可删除”。
我以 root 身份登录。我创建了一个名为 的文件夹,test
其chmod
内容为700 (rwx------)
。所有者为root
,组为wheel
。
然后我以名为 的用户john
(属于组的一部分)身份登录bbstaff
- 并且我可以重命名和删除文件夹test
。这难道不是不可能的吗?
我认为w
权限阻止了重命名。
答案1
解决此类问题的终极方案是使目录不可变。这需要非常小心,因为这不是一个非常常见的操作,因此如果您这样做,最好在目录中留下一个文件,并附上一个巨大的警告:
# /some/directory/VAR_HAS_BEEN_MADE_IMMUTABLE.WARNING
完成此操作后:
# chflags schg /some/directory/var
您会发现它不再能被移动、删除或更改,甚至无法通过 root 进行操作,直到您将标志翻转回来。
请注意,这是 BSD 对 Linux 命令 chattr +i 的处理方式
http://www.cyberciti.biz/tips/howto-write-protect-file-with-immutable-bit.html
答案2
谷歌提供了许多答案,包括这一个,其中表示“在父目录上设置粘滞位将只允许目录所有者删除。
chmod +t /some/dir/ParentDir
请参阅使用部分http://en.wikipedia.org/wiki/Sticky_bit有关粘性位的更多信息”
这个也提倡使用粘滞位。
第三,这一页说“当目录被设为粘性时,它会增加一个特殊的安全功能。它可以防止某人删除或重命名目录中的文件,除非他们拥有该文件。”。
看起来这就是你的解决方案。