我希望我的文件不被任何用户删除。我可以知道相同的 chmod 模式命令吗?
我需要获取这种消息(rm ctl_model_fact.csv:权限被拒绝)
答案1
root
总是可以删除文件(至少在级别上chmod
;您需要文件系统属性或 Linux 安全模块(SELinux、AppArmor)来防止这种情况)。
对于普通用户,您必须删除所有用户的父目录的写权限。
答案2
只要您不想阻止 root 删除该文件,您实际上就需要修改该文件所在ctl_model_fact.csv
目录的权限。chmod go-w [your directory]
会这样做,但它会影响目录中的所有文件,而不仅仅是ctl_model_fact.csv
.如果您还想确保其他用户无法改变文件,使用chmod go-w ctl_model_fact.csv
.
答案3
删除是写入操作,因此您需要从包含该文件的目录中删除写入权限(以该文件~/foo/bar.txt
为例):
chmod a-w ~/foo/
或者
chmod 666 ~/foo/
然而,这仍然允许 root 删除该文件。如果甚至不想允许这种情况发生,事情就会变得更加复杂。据我所知,最好的方法(这可以通过反转命令轻松规避)是将其设置为“不可变”:
sudo chattr +i ~/foo/bar.txt
这将阻止 root 删除该文件,但他们总是可以再次运行chattr -i ~/foo/bar.txt
来撤消它,因此它更像是一个障碍,而不是一个完整的块。但是,它确实会阻止非 root 用户删除它,并且他们无权运行chattr -i
它,因此这是最简单的方法,因为它不会影响目录中的所有文件。