如何创建文件,即使root用户也无法删除它


13

如何创建文件,即使root用户也无法删除它?


9
尽管tante的答案应涵盖您的问题,但对此要有一个元注释:如果您在问题中添加了基本原理,答案将容易得多。也许可以解决您的问题,而不仅仅是防止删除文件?
fschmitt

Answers:


33

简单的答案:您不能,root可以做所有事情。

您可以使用chattr设置“ i”属性(至少在ext {2,3,4}上),这会使文件不可更改,但root可以取消设置该属性并始终删除该文件。

更复杂(丑陋的变通办法):将您要更改的目录作为根目录放在远程服务器上,并通过NFS或SMB挂载。如果服务器不提供写权限,则会锁定本地根帐户。当然,本地root帐户可以只将文件复制到本地,卸载远程内容,将副本放置到位并进行更改。

您无法锁定root用户以删除文件。如果您不信任自己的根来保持文件完整,那么您将面临社会问题,而不是技术问题。


面试官问我这个问题。我不知道答案。我问他答案。他说有可能,自己找到解决办法。
Kumar 2010年

12
有朝一日,您也将成为一名面试官,并且能够提出自己无聊的问题:“ root用户可以创建一个太大的文件,以至于他不能mv吗?” (这是基于基督教神学的me脚笑话,如果您不熟悉该领域,那是一个可怕的笑话)
msw

5
@msw:即使您熟悉该领域,也可能会说这是一个可怕的笑话。
马修·克鲁姆利

@matthew crumley:罪名成立:)
城市生活垃圾

@msw:我刚刚注意到您甚至承认这是一个la脚的笑话。FWIW,我喜欢(一些)la脚的笑话,所以我实际上很喜欢。不过,这已经离主题很远了:)
Matthew Crumley

34

放到CD-ROM上!;)

(这应该是评论,但我不能发表评论...)


名誉限制背后有一种感觉;-)只是一个小的发人深省的冲动。无火焰;-)
echox

6
+1但这行得通。
理查德·霍洛威

1
这和@mouviciel的回答是唯一正确的解决方案。即使是全能的@root仍然受硬件设置的规则约束。
Lie Ryan

15

将文件放在只读文件系统上。这可能是远程FS,其中根不再是根,可以是CD-ROM或可写保护的可移动设备(例如SD卡)。


2

很久以前,我写了一个内核补丁(至2.2.ancient),在其中试图删除一个名为SELFDESTRUCT的文件,从而终止了调用过程。防止意外的“ rm -rf *”。


很久很久以前 您实际上是如何做到的(命令)?
Michael Durrant 2015年

1

您可以chattr +i用来使文件不可变。

当然,具有root用户访问权限的精明用户仍可以使用chattr -i先删除不可变属性,然后再删除文件,但是他们也可以撤消此处列出的其他任何阻止访问的尝试。

我认为chattr是执行此操作的正确Unix方法。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.