sudo 在某些服务器上要求输入密码

sudo 在某些服务器上要求输入密码

我为许多(虚拟)服务器(主要是 debian)设置了一些 sudo 规则,供 zabbix 脚本使用:

zabbix ALL=NOPASSWD: /etc/init.d/exim4 restart

zabbix-agent 和 sudo 配置文件 ( /etc/sudoers.d/zabbix-agent) 通过 ansible 分发,并且对于所有服务器都是相同的。

但是,在某些服务器上,sudo 要求输入密码。对其他人来说则不然。无论我使用 zabbix 还是本地运行命令都是一样的:

# sudo -u zabbix sudo /etc/init.d/exim4 restart

有时,它可以工作,有时它会要求输入密码。

我调查了一下,明显的答案是 sudo 配置中的 zabbix 用户有不同的规则,但这是不正确的。

还有哪些其他因素可能导致系统要求输入密码?

答案1

好的,有两个错误源:

  1. sudoers.d目录未包含在/etc/sudoers.在大多数现代系统上,这是默认设置,因此只需删除该文件即可,但有一些旧系统最初是随 Debian Lenny 安装的,并保留了旧的 sudoers 文件。
  2. 没有安装 exim,因此/etc/init.d/exim4不存在。现在这在某种程度上也是一个用户错误,但它也是非常蹩脚的错误报告对于须藤。我知道报告尝试执行某些文件可能会导致信息泄漏(但是,sudo 配置中对该可执行文件有明确的规则,因此我不确定这是一个有效的原因),但系统确实如此如果我提供正确的密码,则报告错误。

相关内容