chattr +i:chattr:设置标志时不允许操作

chattr +i:chattr:设置标志时不允许操作

我试图在我的主目录中的某些文件上设置不可变属性。但我不断得到:

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(取消删除)标志可以由任何用户设置,只是文件系统不尊重它们......)

相关内容