
Tengo algunas reglas sudo configuradas para muchos servidores (virtuales) (principalmente Debian) para que los utilicen los scripts de zabbix:
zabbix ALL=NOPASSWD: /etc/init.d/exim4 restart
El archivo de configuración zabbix-agent y sudo ( /etc/sudoers.d/zabbix-agent
) se distribuye a través de ansible y es el mismo para todos los servidores.
Sin embargo, en algunos servidores, sudo solicita una contraseña. En otros, no es así. Es lo mismo si ejecuto el comando usando zabbix o localmente:
# sudo -u zabbix sudo /etc/init.d/exim4 restart
A veces funciona y otras pide la contraseña.
Lo investigué y la respuesta obvia de que hay una regla diferente para el usuario de zabbix en la configuración de Sudo no es cierta.
¿Qué otros factores podrían hacer que el sistema solicite una contraseña de todos modos?
Respuesta1
Ok, hubo dos fuentes de error:
- El
sudoers.d
directorio no estaba incluido en/etc/sudoers
. En la mayoría de los sistemas modernos, este es el valor predeterminado y, por lo tanto, simplemente eliminar el archivo funciona, pero había algunos sistemas antiguos que se instalaron originalmente con Debian Lenny y mantuvieron el archivo sudoers antiguo. - No se instaló ningún exim, por lo que
/etc/init.d/exim4
no existía. Ahora bien, esto también es un error del usuario en cierto modo, pero también esinforme de errores muy desagradablepara sudo. Entiendo que informar sobre el intento de ejecutar algunos archivos puede resultar en una fuga de información (sin embargo, existe una regla explícita para ese ejecutable en la configuración de sudo, por lo que no estoy realmente seguro de que sea una razón válida), pero el sistema no informar el error si proporciono una contraseña correcta.