UNIX/Linux:在sudo运行时发送电子邮件

时间:2020-01-09 10:43:48  来源:igfitidea点击:

我没有被告知要使用root用户执行不需要它的活动。
我已经为自己和其他Web开发人员配置了sudo,以便他们可以重新启动MySQL或者Apache Web服务器。
当我的一个用户运行sudo时,如何发送电子邮件?
如何跟踪通过sudo命令完成的用户登录?

sudo确实增强了系统的安全性,而无需与其他用户和管理员共享root密码。

sudo也提供了简单的审核和跟踪功能。

配置sudo发送电子邮件

可以将Sudo配置为在使用sudo命令时发送电子邮件。
打开/etc/sudoers文件,执行:

# vi /etc/sudoers

配置更改电子邮件ID:

mailto "[email protected]" 
   mail_always on

其中:

  • mailto [email protected]:您的电子邮件ID。
  • mail_always:每次用户运行sudo时,将邮件发送给mailto用户。默认情况下,此标志是关闭的。

其他选项:

选项说明
mail_badpass如果运行sudo的用户未输入正确的密码,则将邮件发送给mailto用户。默认情况下,此标志是关闭的。
mail_no_host如果设置,则在sudoers文件中存在调用用户的情况下,会将邮件发送给mailto用户,但不允许在当前主机上运行命令。默认情况下,此标志是关闭的。
mail_no_perms如果设置,如果允许调用用户使用sudo,但他们尝试的命令未在其sudoers文件条目中列出或者被明确拒绝,则邮件将发送给mailto用户。默认情况下,此标志是关闭的。
mail_no_user如果设置,如果调用用户不在sudoers文件中,则邮件将发送到mailto用户。默认情况下,此标志是打开的。

Sudo日志文件

默认情况下,sudo记录syslog。
您可以在/var/log/auth.log(Debian/Ubuntu)或者/var/log/secure(Redhat和朋友)中看到sudo登录。
但是,您可以设置sudo日志文件(而不是syslog日志文件)的路径。
设置路径将打开日志记录;否定此选项将其关闭。
执行以下命令以编辑文件:

# sudoedit /etc/sudoers

设置日志文件的路径:

Defaults        !lecture,tty_tickets,!fqdn,!syslog
   Defaults        logfile=/var/log/sudo.log

保存并关闭文件。
要查看日志,请执行:

# tail -f /var/log/sudo.log
# egrep -i 'foo' /var/log/sudo.log
# egrep -i 'user1|user2|cmd2' /var/log/sudo.log

输出示例:

May  1 12:30:13 : Hyman : TTY=pts/3 ; PWD=/home/Hyman ; USER=root ; COMMAND=/bin/bash
May  1 12:34:02 : Hyman : TTY=pts/0 ; PWD=/home/Hyman ; USER=root ;
    COMMAND=sudoedit /etc/sudoers