文件在linux服务器上消失了

我有4个特定的文件似乎一直在从用户的主目录中消失.据我们所知,没有cronjobs或其他自动化任务可以删除它们.我已经对它们进行了审计,但日志并没有真正显示出任何有趣的内容.我可以看到我们的备份实用程序每晚都访问它们,直到它们不再存在,但没有别的.有没有什么可以导致这些文件删除,以解决审计?

有问题的文件是这些:

/home/username/.bashrc
/home/username/.bash_profile

以及该用户的.ssh目录中的几个文件.放置在名为“keepers”的子文件夹中的这些文件的副本也会同时被删除.将它们的权限更改为000并让它们归root所有并没有帮助.

我目前有inotifywait设置来记录创建,删除,移动该子文件夹,所以希望这会产生一些东西,虽然它不会记录它发生的时间,而不是导致它的原因.

解决方法

您可以使用 systemtap显示尝试在.bashrc和.bash_profile文件的inode上使用 unlink()的所有PID.

安装systemtap和内核的调试符号.

使用以下内容创建名为unlink.stap的文件

probe syscall.unlink
{
    printf ("%s(%d) unlink (%s) userID(%d)\n",execname(),pid(),argstr,uid())
}

然后使用sudo stap unlink.stap运行它

您还可以使用inotify查看文件何时被删除.

一个解决方案是使用ftrace

trace-cmd record -e \*unlink\*

等待文件删除,按CTRL C停止trace-cmd记录…,然后运行:

trace-cmd report

相关文章

1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...
如何抑制stable_secret读取关键的“net.ipv6.conf.all.stabl...
1 删除0字节文件 find -type f -size 0 -exec rm -rf {} ...
## 步骤 1:安装必要的软件包 首先,需要确保系统已安装 `dh...