gpt4 book ai didi

c - 在 Linux 中保护文件不被编辑

转载 作者:太空宇宙 更新时间:2023-11-04 07:35:38 24 4
gpt4 key购买 nike

如何保护文件不被外部程序或用户编辑,即使该用户以某种方式获得了 root 权限。假设我有这个我必须保护的文件 F,默认情况下只有 root 和用户可以执行、读取和写入 F,所有其他人只有读取权限。

假设我有一个程序,它正在保护关键文件F,并检测到编辑的情况异常,似乎系统的安全性可能已经受到威胁。如何防止保存对文件 F 的更改?如果可能,还终止尝试进行该更改的程序。

我发现 fuser 可以终止该进程,但不会在进行任何修改或损坏之前终止。我使用 inotify 来检测变化。我的问题是大多数编辑会制作一个临时文件,进行更改,然后将其保存到原始文件中。尽管我收到了 IN_OPEN、IN_CLOSENOWRITE 等事件,但只有在事件完成后我才会收到 IN_CLOSEWRITE 和 IN_CLOSEMODIFY?如何阻止我的文件 F 被修改?

我知道我的程序可能会在有人进入系统后被杀死,但我能以某种方式保存尽可能少的东西吗?

编辑:我忘了说我无法更改任何受监控文件的权限。

编辑 #2:我有一组文件需要持续监控。我的程序将在后台运行并记录这些文件中的更改。我之前写的所有文件都可以由 root 编辑和执行,但是有些操作(修改)可能是不受欢迎的,很可能意味着有人获得了 root 访问权限并编辑了那些关键文件。我需要停止这些有害的变化。从答案中,我以某种方式假设我必须获取这些文件的快照。但问题是文件的数量可能很大,大约 1 到 4 百万。欢迎任何比快照解决方案更有效的解决方案。

最佳答案

如果“攻击者”拥有 root 权限,则无法保护文件。无论您做什么,root 都可以撤消。话虽如此,如果你想让它变得困难,你可以把文件放在只读文件系统上,比如 cdrom。

关于c - 在 Linux 中保护文件不被编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9326973/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com