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