以下是问题所在:
我在服务器上有一个文件,它需要有一组特定的权限,比如644。不时会有一些进程将权限更改为600,但我不知道是哪一个。我如何在行动中捕捉到它?
对于这类问题和其他类似的问题,我正在寻找一组系统库(我想),我可以将它们插入到普通库之前,它们的功能与普通库几乎相同,只是它们以某种方式记录了调用以及时间戳和作恶者的名字。有没有什么工具--库之类的--来提供这个功能?
发布于 2015-12-15 21:23:02
首先,您需要确定这是由哪个程序更改的。要做到这一点,您可以使用SElinux,一些linux发行版(如果不是全部的话)在/etc/selinux中有它的设置,您可以在其中定义允许的规则。违反规则的行为将被拒绝,但失败的尝试也将被记录下来(因此这既消除了症状,又指出了原因)。
有关SElinux的更多信息,我建议您在Unix/Linux exchange上咨询。
下一步,如果它是您自己的程序,可能是在gdb下运行它,并在chmod函数上放置一个条件断点。您还可以在gdb中执行从断点打印输出并继续的功能,这将允许程序几乎正常运行,但会为每个经过chmoded的文件获得打印输出。
发布于 2015-12-15 22:03:17
这就是审计设计的目的。
有关可能符合您的问题副本的示例,请参阅How can I audit all chmod and chgrp commands?。
https://stackoverflow.com/questions/34290215
复制相似问题