我想知道当用户通过 sudo 安装/卸载任何软件包时,是否存在任何机制。它会生成电子邮件并将其发送到 root 的电子邮件地址。
我使用的是 centos 6.4,通常通过 yum 或直接安装 (rpm) 安装软件包。
答案1
这个问题有点难回答,因为你没有告诉我们你的发行版或你使用的哪个包管理器。有很多方法可以做到这一点,其中之一就是将你的包管理器变成一个函数。我将以此为例apt-get
。
重命名apt-get
可执行文件:
sudo mv /usr/bin/apt-get /usr/bin/apt-get.bin
制作一个小包装脚本,调用apt-get
然后发送电子邮件:
#!/bin/sh
./apt-get.bin "$@" && echo "User $SUDO_USER ran 'apt-get $@'" |
sendmail [email protected]
将上述脚本保存为/usr/bin/apt-get
并使其可执行:
sudo chmod a+x /usr/bin/apt-get
现在,每次用户成功运行时apt-get
都会向发送一封电子邮件[email protected]
。
这不是最优雅的方法,用户直接调用很容易绕过它,但它可能满足您的需求。如果用户从源代码安装包或直接apt-get.bin
使用,它也无济于事。aptitude
dpkg