如何使文件或文件夹无法删除?

如何使文件或文件夹无法删除?

我想让文件或文件夹无法删除,即使超级用户也无法删除该文件。Chattr仅当文件位于 Linux 文件系统中时,命令才会使文件无法删除 ( ext2,ext4)。但我想让ntfs文件系统中存在的文件无法删除。

答案1

root不存在“ ”不能删除的东西。就像告诉上帝他不能做或撤销某件事。root你可以把你的机器倒过来,让它变成 1+1=3,如果它愿意的话,你无法阻止它。所以,你无法阻止 root 删除他喜欢的任何文件,就是不能。也不是 NTFS,也不是 ext2/3/4,也不是 HSF+,也不是 FAT16/32/64,也不是任何其他由操作系统统治的文件系统。

又长又无聊的答案

除非没有其他人可以root访问你的系统,否则是不可能的但是还有一些方法可以让用户更进一步删除文件,其中之一是chattr

chattr 改变 Linux 文件系统上的文件属性。

[...]

具有该属性的文件i无法修改:无法删除或重命名,无法创建指向该文件的链接,也无法向该文件写入任何数据。只有超级用户或拥有该CAP_LINUX_IMMUTABLE权限的进程才能设置或清除该属性。

所以,如果没有人有root访问权或能力使用另一个操作系统进行启动,那么该文件是不可删除的,否则任何用户都可以(并且将会)删除您的文件。如果文件系统被格式化和/或固件技术删除磁盘数据,情况也是一样。

怎么做?

创建文件:

$ touch deletemeifyoucan

保护它:

$ sudo chattr +i deletemeifyoucan 
[sudo] password for braiam: 

尝试删除它

$ rm deletemeifyoucan
rm: remove write-protected regular empty file ‘deletemeifyoucan’? y
rm: cannot remove ‘deletemeifyoucan’: Operation not permitted

现在用 root 身份尝试:

$ sudo rm deletemeifyoucan 
rm: cannot remove ‘deletemeifyoucan’: Operation not permitted

取消保护:

$ sudo chattr -i deletemeifyoucan 

离开了:

$ rm deletemeifyoucan 
$ #POOF!

相关内容