是否可以使文件仅在 Linux 的安全模式下才可删除?具体来说,我使用的是 ubuntu 14.04,我需要防止文件被删除。
如果此解决方案不可行,是否有其他方法使 Sudoer 难以删除该文件?
我知道的唯一解决方案是使用 chattr +i/-i,而且很容易删除。
答案1
不。你的问题是,如果管理员无法删除文件,那么就会带来安全风险:有恶意并拥有系统访问权限的人将能够在你的系统上安装文件,即使该系统的管理员无法删除。心怀不满的管理员可能会因此而大发雷霆……
此外attr
(管理员可以轻松更改)您还可以在文件开头添加一个点,使其在常规命令中不可见(ls
需要选项-a
),使未受过教育的人更难找到和删除它(它不会欺骗知道系统中存在秘密文件的人)。没有什么可以阻止删除文件。
但 ...
不过,一种可行的方法是将文件挂载到只读加密分区上。需要加密,这样“root”就无法在不知道密码的情况下重新挂载它。当某人能够以可写方式重新挂载该文件时,他仍然可以删除该文件,但这与您问题中的“仅在安全模式下”部分无关。但这似乎是最实用的方法。
Ubuntu 还支持加密的私人目录(软件包ecrypt-utils
,但也有类似的工具cryptkeeper
)。但这取决于您是否需要文件的内容来强制执行某些操作,或者是否真正需要删除它。要使用该文件,您需要使用您的登录名和密码打开目录;然后也可以删除该文件(因此,当您不在系统后面时,您需要卸载私有目录以防止删除;当您在机器后面并需要它时,您可以安装它并在不需要时卸载它;限制某人可以删除它的时间范围)。
我确实对你的问题有一个疑问:一般来说,你应该相信管理员不会乱动文件。如果你不能信任那个人,就删除他的访问权限,并将他的帐户限制为具有一些额外权限的普通帐户。确保你是唯一管理员是防止删除该文件的更好、更简单的方法。