我想要一个日志文件,其中包含用户每次运行任何 suid 程序时的条目,其中包含用户名、程序和传递给它的任何命令行参数。在 Linux 上有实现这一目标的标准方法吗?
答案1
您可以通过以下方式记录特定可执行文件(setuid 或非 setuid)的所有调用审计子系统。文档相当稀疏;从auditctl 手册页, 也许本教程。最近的发行版都会附带一个auditd
软件包。安装它并确保auditd
守护进程正在运行,然后执行
auditctl -A exit,always -F path=/path/to/executable -S execve
并观察呼叫是否已登录/var/log/audit/audit.log
(或您的发行版已设置的任何地方)。