【发布时间】:2017-08-31 08:11:45
【问题描述】:
当我在终端中运行一个通过运行其他脚本来编译不同内容的脚本时,它会显示一个错误,告诉我文件 XXX 不存在。但它在我运行脚本之前就存在了。因此,我想找出是什么脚本/程序/进程删除了该文件以修复错误。
我查看了this,但它没有帮助我:我正在寻找删除源的程序,而不是用户。此外,我使用的机器上不存在 auditctl 和 iwatch。
请注意,我对what files are deleted 不感兴趣(我完全知道是哪个)。
另外,我可以重新创建 XXX 以再次运行脚本。
如何简单找出导致XXX删除的原因?
【问题讨论】:
-
你可以让它写保护(
chmod 440 XXX),看看是否有脚本抱怨。你在用make吗?make删除中间产品。 -
chmod不起作用,因为 XXX 实际上是一个符号链接,所以权限保持lrwxrwxrwx并且文件仍然被删除。我不认为 XXX 是 Makefile 的目标。我也在使用 shell 脚本。 -
我已将 XXX 替换为常规文件以在其上使用
chmod 440,但仍将其删除。然而,当我运行第一个脚本时,我没有使用sudo。 -
您必须将所有者和组设置为
root以防止用户进行非sudo 访问。 -
使用
chattr +i而不是chmod 440。
标签: linux