总结
Sudo 会导致额外的、无用的“默认条目问题”警报
环境
Ubuntu 16.04 服务器 LTS,sudo 1.8.16
问题
每当用户(无论是 sssd-ad 认证用户、本地用户还是 root 用户)使用须藤,它可以工作。但是,它也会向管理员发送一封无用的电子邮件:
host1.example.com : Jun 6 14:40:44 : root : problem with defaults entries ; TTY=pts/2 ; PWD=/root ;
不再有默认条目!我在故障排除期间删除了它们。我尝试保留它们。顺便说一下,它们是:
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
我找不到问题所在!我删除了所有额外的 sudoers 指令,但 sudo(以 root 身份)仍然会抛出错误!
我如何让 sudo 停止向我发送无用的电子邮件?
答案1
解决方案
此问题是由于 sudo 在无法找到指令的地方寻找指令而导致的:sss。检查 /etc/nsswitch.conf 文件并修改 sudoers 条目。
sudoers: files sss
sss 不应该在那里。sssd-ad 包会将自身添加到那里,但很少有环境将 sudoers 指令存储在 sss 中。您的指令很可能是本地的,因此您应该有一个如下所示的 /etc/nsswitch 文件条目:
sudoers: files
参考
RHEL6 的用户也遇到了同样的问题。https://bugzilla.redhat.com/show_bug.cgi?id=879633
该问题是可以解决的,包括在 Ubuntu 16.04 上https://bugs.launchpad.net/ubuntu/+source/sssd/+bug/1249777
https://bgstack15.wordpress.com/2016/06/06/solve-sudo-sending-useless-emails-problem-with-defaults-entries/
答案2
请注意,当您实际上未使用 sssd 的 sudoers 功能时,接受的解决方案才会负责关闭电子邮件。
在 sssd-ad 的下一次更新之前,这个问题一直在解决,下次更新后它将再次开始发送。我相信打包人员正在研究如何解决 nsswitch 指令的这种破坏。
当您确实想使用来自 AD/freeIPA 的 sudoers 条目时,请继续阅读:
当您拥有 sudo 指令的实际上游提供商时,您应该设置此项:
$ grep -A 1 "[sssd]" /etc/sssd/sssd.conf
[sssd]
services = nss, sudo, pam, ssh
遗憾的是,这不会在 freeipa-client 安装时停止发送消息。仍在努力。如果我发现什么,我会在这里添加
答案3
sssd
这是一种无法触及的症状。
如果您不使用sssd
,则接受的答案是好的,您应该遵循它并sssd
从中删除/etc/nsswitch
。
但是如果你正在使用 freeipa,或者 redhat ipa,或者类似的东西,那么你需要sssd
,所以不要碰/etc/nsswitch
。
相反,确保它sssd
正在运行并且正常运行。
从...开始:
systemctl status sssd
systemctl restart sssd
如果这不能解决问题(对我来说有效),那么请检查中的线索/var/log/secure
。
答案4
从某种意义上来说,这些答案都很好。
但是,我们正在使用 sssd(通过 FreeIPA),并且需要将 sss 保留在 sudoers 行中/etc/nsswitch.conf
。这是在 Ubuntu 20.04 上。
Sudo 似乎运行正常,除了这些电子邮件不断滴滴答答地发送出去。
以下是我想到的两种不同的解决方案:
- 将 mailto 地址更改为别名为 /dev/null 的地址。虽然最新版本的 sudo 允许您关闭此功能,但 1.9.7p2 或更早版本并非如此。请注意,这会停止所有电子邮件,这也会阻止从 sudo 发送合法的安全电子邮件:
# grep mailto= /etc/sudoers
Defaults mailto="[email protected]"
# grep devnull /etc/aliases
devnull: /dev/null
- sudoers 手册页(1.9.12p1 版本的手册页)
- 别名手册页
- 更改 sudoers 行
/etc/nsswitch.conf
:
sudoers: sss[!success=continue] files