在linux中执行指定命令时触发警报



我的系统中挂载了3个samba共享,但是突然间,其中一个在未经我允许的情况下被卸载了。也许是在我的crontab中运行的数百个脚本中的一个,但我不知道是哪个。

我已经检查了所有/var/log目录寻找umount字没有成功,然后我想记录命令umount何时执行以及哪个进程正在运行它。

可能是syslog,可能是另一个日志,可能是邮件到我的邮箱....

谢谢你。

我有这个软件:

mount: mount-2.12q
mount.cifs version: 1.14-3.5.4

卸载不仅可以通过调用umount二进制文件来实现,许多程序都可以这样做。查看手册(man syscalls),搜索"umount"。也就是说,您必须挂钩相应的syscall,并查看谁调用它。我不确定,但很可能通过直接调用相应的方法来断开内核内部的连接,因此功能可能会绕过主要用于用户空间交互的系统调用接口。在这种情况下,您将不得不对内核本身使用一些调试技术,这对于找到您的问题可能有点多!

您可以成功地在已经运行的进程(man strace)上使用strace,例如smbd,并查看该进程是否调用umount,这是很有可能的。

无论如何,如果您可以从源代码重新编译内核,您可以在用于卸载设备的函数中添加一些printk消息,以查看是哪个进程卸载了设备(这将是我在没有其他方法(包括strace)的情况下使用的方法)。

由于挂载是文件系统中的一个更改,因此inode-observer的增量可能是一个适合您的解决方案。另一个选项可能是audited .

相关内容

  • 没有找到相关文章

最新更新