chmod 命令将文件设置为权限被拒绝

chmod 命令将文件设置为权限被拒绝

我希望我的文件不被任何用户删除。我可以知道相同的 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它,因此这是最简单的方法,因为它不会影响目录中的所有文件。

相关内容