如果文件的写权限被禁用,则无人能更改该文件。
使用“chattr +i FILE”也可以保护文件不被更改。
请告诉我它们的区别,以及何时应该使用“chattr +i”而不是“chown -w”。
使用“chattr +i FILE”也可以保护文件不被更改。
请告诉我它们的区别,以及何时应该使用“chattr +i”而不是“chown -w”。
chattr +i
命令可以在文件上设置 immutable
文件系统属性。它不同于访问控制规则,访问控制规则适用于文件属性,而 immutable
是一个文件系统扩展文件属性,可能并非所有文件系统都支持此属性。只有具备超级用户权限的用户才能设置或取消此扩展属性。即使是文件所有者或拥有写入权限的用户,也无法对该文件进行写入操作。没有写入文件权限的用户可以创建常规文件的硬链接,但如果文件标记为不可变,则用户无法创建硬链接,因为文件系统无法更改对此不可变文件的引用计数。
chattr +i
对于防止 root 的意外删除很有用。同时,不可变文件也无法从一个目录重命名或移到另一个目录中。
以下内容来自chattr
的手册页面:
带有'i'属性的文件不能被修改:无法删除或重命名,无法创建到该文件的链接,也无法向文件中写入数据。只有超级用户或拥有CAP_LINUX_IMMUTABLE能力的进程才能设置或清除此属性。
可以看出,chattr比chmod更强大。 chmod -w仅移除对文件内容的'写入
'权限。而且您需要使用chattr +i
来保护/锁定文件,然后使用chattr -i
来解锁。
chmod -w file
可在所有 UNIX 环境下使用,但是使用扩展文件属性的 chattr -i FILE
可能在您的系统上不可用,这取决于文件系统/发行版的类型!
除此之外,请查看此链接,了解使用扩展文件属性的优缺点。
chattr +i
命令是非常有用的。 - 273K