我为许多(虚拟的)服务器(主要是debian)设置了一些sudo规则,供zabbix脚本使用:
zabbix ALL=NOPASSWD: /etc/init.d/exim4 restart
zabbix代理和sudo配置文件(/etc/sudoers.d/zabbix-agent
)是通过ansible分发的,对所有服务器都是一样的。
然而,在一些服务器上,sudo要求输入密码。在其他人身上,情况并非如此。无论我是使用zabbix运行命令,还是在本地运行,都是一样的:
# sudo -u zabbix sudo /etc/init.d/exim4 restart
有时,它工作,有时它要求密码。
我查看了它,很明显的答案是,sudo配置中对于zabbix用户有一个不同的规则是不正确的。
还有什么其他因素会导致系统要求密码呢?
发布于 2020-04-15 15:46:32
好的,有两个错误来源:
sudoers.d
目录未包含在/etc/sudoers
中。在大多数现代系统中,这是默认的,因此只是删除了文件,但是有些旧系统最初是与Debian一起安装的,并且保留了旧的sudoers文件。/etc/init.d/exim4
。在某种程度上,这也是一个用户错误,但对于sudo来说,这也是非常糟糕的错误报告。我理解关于试图执行某些文件的报告可能会导致信息泄漏(但是,sudo配置中对于该可执行文件有一个明确的规则,所以我不确定这是一个有效的原因),但是如果我提供了正确的密码,系统就会报告错误。https://unix.stackexchange.com/questions/580251
复制相似问题