如何限制任何人(根用户也)在 Linux 中修改文件



我正在使用C和CPP为Linux平台开发一个安全基础软件。我想限制所有用户(甚至是root用户(也修改文件。即没有人可以修改文件。

修改意味着没有人可以写入文件、移动文件或删除文件等。

更准确地说:

我在目录/home/中有一个名为a.txt的文件,我想对这个文件做一些事情,以便没有人可以写入这个文件、删除这个文件或移动这个文件。

但可以读取文件。

我尝试了chattr命令:

chattr +i /home/a.txt

它为其他用户解决了我的问题,但是当我切换到超级用户(即 root 用户(进入终端并触发命令时:

chattr -i /home/a.txt

因此/home/a.txt文件变得可变。 root 用户可以将文件不可变更改为可变。因此,对于root用户来说,问题并没有解决。

我想对这个文件做点什么,所以即使是 root 用户也无法修改这个文件。

我已经在Unix&Linux上问过这个问题,并询问Ubuntu,但没有得到任何答案。

一般来说,Unix系统中root用户的定义是,当用户是root用户时,内核不进行权限检查(有一些微不足道的例外(。

所以,如果你想阻止root做某事,你必须编写一个内核模块来做到这一点。事实上,大多数与安全相关的软件都有内核组件。这将比你想象的要难 - root 基本上可以卸载文件系统并将其挂载到另一台机器上,或者使用不包含您的模块的内核启动。

已经有一些与安全相关的内核模块可以研究:SELinux,AppArmor等(还有Tomoyo和Smack,但在这种情况下它们似乎没有帮助(。根据您的要求,它们可能就足够了。

将应用放入具有磁盘加密功能的设备中。

相关内容

  • 没有找到相关文章

最新更新