1

我想知道是否有任何人一尝试就可以发送邮件su -su或者su root。我知道邮件命令,我正在尝试编写一个脚本,但我很困惑

  • 在哪里写 - 无论是在.bashrc根还是在/etc/process
  • 如何调用邮件上的使用su

我已经尝试过通常的谷歌搜索等,但是得到了关于使用su、禁用它、保护 ssh 等的链接——这些都没有回答这个问题。

提前致谢

4

3 回答 3

4

我猜你的基本要求是你有一群人你已经授予了root权限,但你并不完全信任他们,所以你想关注他们。您对此的解决方案是在他们成为 root 时让自己发送邮件。

这个解决方案的问题是 root 用户拥有无限的权限,所以没有什么可以阻止他们抵制这种机制。例如,他们可以在一个会话中编辑 /etc/login.defs 文件,做您希望他们做的好事,然后 su 到 root 并做您担心的坏事,并在该会话结束时他们将 /etc/login.defs 文件编辑回它的原始状态,你一点也不聪明。或者,他们可以只制作 /usr/bin/bash 的副本,并将副本制作为 suid 文件,以便在他们运行时授予他们特权。

您可能能够关闭我刚刚建议的任何漏洞,但还会有很多很多。因此,您要么信任他们,要么根本不使用 su 并授予他们 sudo 权限以运行他们需要执行您希望他们执行的操作的那些命令。

于 2013-07-27T13:33:05.000 回答
2

根据 su 的手册页,您可以在 /etc/login.defs 中设置SULOG_FILE fileSYSLOG_SU_ENABLE yes记录所有 su 活动。然后你只需要像 inotifywait 这样的东西来观察日志文件中的 su 事件。

于 2013-07-27T13:12:28.267 回答
2

有一个名为的日志文件/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)

类似的条目会出现susu 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

现在在哪里运行脚本。一种方法是将其放入可执行脚本文件(例如watchsu)并从您的文件中调用它rc.local

nohup /path/to/watchsu 2>&1 &

我敢肯定还有其他想法可以从哪里开始。我对 CentOS 不熟悉。

于 2013-07-27T13:26:59.540 回答