【问题标题】:trigger alert when a specified command executes in linux在linux中执行指定命令时触发警报
【发布时间】:2011-10-25 08:43:33
【问题描述】:

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

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

也许是系统日志,也许是另一个日志,也许是一封邮件到我的邮箱......

非常感谢。

我有这个软件:

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

【问题讨论】:

    标签: linux logging mount samba umount


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-09
        • 2011-06-11
        • 1970-01-01
        • 2021-08-19
        • 2017-02-28
        相关资源
        最近更新 更多