什么' `chattr + i FILE`和`chmod -w FILE`之间的区别?

时间:2018-02-02 07:52:57

标签: linux unix filesystems

如果禁用该文件的写入权限,则无人可以更改该文件。

chattr +i FILE也可以保护文件不被更改。

让我知道区别的是什么,何时应该使用chattr +i而不是chown -w

3 个答案:

答案 0 :(得分:6)

chattr +i设置文件的immutable文件系统属性。它与访问控制规则不同。访问控制规则适用于文件属性,而immutable是文件系统扩展文件属性,可能并非在所有文件系统上都可用。只有具有root权限的用户才能设置或取消设置此扩展属性。没有人,甚至是所有者或具有写入权限的用户都可以写入此类文件。没有写入文件权限的用户可以创建指向常规文件的硬链接,但如果文件被标记为不可变,则用户无法创建硬链接,因为文件系统无法将引用计数更改为此不可变文件。

chattr +i对于防止root用户意外删除非常有用。此外,无法将不可变文件重命名或从一个目录移动到另一个目录。

答案 1 :(得分:2)

来自chattr手册页

  

包含' i'的文件属性无法修改:无法删除或重命名,无法为此文件创建链接且无数据   可以写入文件。只有超级用户或拥有CAP_LINUX_IMMUTABLE功能的进程才能设置或清除它   属性。

如您所见, chattr chmod 更强大。 chmod -w 仅删除' write'对文件内容的许可。此外,您还需要使用chattr +i来保护/锁定文件,然后chattr -i解锁

答案 2 :(得分:0)

chmod -w file在所有UNIX环境中都可用,但是chattr -i FILE使用扩展文件属性可能在您的系统上不可用,具体取决于文件系统/发行版的类型!

最重要的是,请查看此链接,了解扩展文件属性的优点/坏处:https://www.lesbonscomptes.com/pages/extattrs.html