如何在没有sudo权限的情况下防止文件被修改

如何在没有sudo权限的情况下防止文件被修改

抱歉,如果这个问题已经被问过,我只是找不到答案。如果我做:

touch file.txt
chomd 444 file.txt

原则上,每个人(除了ROOT)都只能读取该文件。但是如果我这样做:

rm file.txt

尽管显示了:我仍然可以删除该文件:

rm: remove write-protected regular empty file 'file.txt'? y

即使它受到保护。有没有办法真正保护这个文件?我看到有人可以chattr +i file.txt但只有你能做到这一点才有效sudo;我不是管理员(与 99% 的用户一样)。

干杯。

答案1

在 Unix 文件系统中,您并不真正删除文件,而是“取消链接”它:文件数据位于“inode”中,并且目录具有对该 inode 的引用(这就是为什么您可以拥有“硬链接”:这些是多个引用到多个目录中的相同 inode)。当最后一个引用消失时,inode 被破坏并恢复空间。

rm只是删除父目录中的引用,并意味着对该父目录而不是文件的写入权限。因此,为了保护文件引用,您需要删除目录的写入权限。

相关内容