[英]Detect use of su command in bash
我想知道一旦有人尝试使用su -
, su
或su root
,是否仍然可以发送邮件。 我知道mail命令,并且我正在尝试编写脚本,但是我很困惑
.bashrc
还是/etc/process
su
调用邮件 我已经尝试了通常的Google搜索等,但是获得了有关su
用法,禁用它,保护ssh等的链接-没有一个回答了这个问题。
提前致谢
我想您的基本要求是您拥有一群拥有root特权的人,但您并不完全信任他们,因此您要关注他们。 您的解决方案是在成为根用户时让自己发送邮件。
该解决方案的问题在于,root用户具有无限的特权,因此没有什么可以阻止他们抵消这种机制。 例如,他们可以在一个会话中编辑/etc/login.defs文件,做您想让他们做的好事,然后稍后扎根并做您担心的坏事,然后在该会议结束时,将/etc/login.defs文件编辑回其原始状态,您再也不明智了。 另外,他们可以只复制/ usr / bin / bash并将其复制为suid文件,以便在运行它们时赋予他们特权。
您也许可以关闭我刚刚建议的任何漏洞,但还会有很多很多。 因此,您要么信任他们,要么根本不使用su,并授予他们sudo权限,使其仅运行他们需要执行的命令。
根据su的手册页,在/etc/login.defs中,您可以设置SULOG_FILE file
或SYSLOG_SU_ENABLE yes
来记录所有su活动。 然后,您只需要诸如inotifywait之类的功能即可监视日志文件中的su事件。
有一个名为/var/log/secure
的日志文件,该文件在执行su
会收到一个条目。 它也会在其他条件下获得条目。 《 Linux管理员的安全性指南》中对此进行了描述。
如果用户“ fred”执行su -
,则会出现一个类似于以下内容的条目:
Jul 27 08:57:41 MyPC su: pam_unix(su-l:session): session opened for user root by fred(uid=500)
su
或su root
将出现类似的条目。
因此,您可以设置一个脚本来监视/var/log/secure
,如下所示:
#!/bin/sh
while inotifywait -e modify /var/log/secure; do
if tail -n1 /var/log/secure | grep " su: "; then
tail -n1 /var/log/secure | grep " su: " | mail -s "su occurred" you@email.com
fi
done
请注意,您需要安装inotify-tool
软件包才能使用inotifywait
。
如果此脚本在后台运行,则you@email.com
出现su
条目,它都应将电子邮件发送至you@email.com
。
现在在哪里运行脚本。 一种方法是将其放入可执行脚本文件(例如watchsu
),然后从rc.local
文件中调用它:
nohup /path/to/watchsu 2>&1 &
我敢肯定还有其他想法从哪里开始。 我不熟悉CentOS。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.