我试图在我的主目录中的某些文件上设置不可变属性。但我不断得到:
chattr +i test.txt
chattr: Operation not permitted while setting flags on test.txt
但当我这样做时:
sudo chattr +i test.txt
有用。这是设计使然还是我做错了什么?互联网指南充满了chattr
无需 sudo 即可运行的内容。
答案1
来自chattr
手册页:
具有该属性的文件
i
无法修改:无法删除或重命名,无法创建到该文件的链接,也无法向该文件写入任何数据。 只有超级用户或具有该能力的进程CAP_LINUX_IMMUTABLE
才能设置或清除该属性。
这同样适用于a
标志(仅附加),并且j
标志(数据日志)需要该CAP_SYS_RESOURCE
功能。
i
因此,当尝试以普通用户身份设置该标志时,预计会出现错误。
还有一些其他标志不需要权限来设置,但我确信有太多有用的标志。 (例如,s
(安全删除)和u
(取消删除)标志可以由任何用户设置,只是文件系统不尊重它们......)