Definí el siguiente archivo en/etc/sudoers.d/50-apps
Cmnd_Alias APPS=/usr/bin/systemctl start app-*, /usr/bin/systemctl stop app-*,\
/etc/init.d/app1, /etc/init.d/app2
Cmnd_Alias LOGS=/usr/bin/less /var/log/*, /bin/tail -f /var/log/*, /bin/tail /var/log/*,\
/bin/ls /var/log/*
%developers ALL= NOPASSWD: SETENV: APPS, LOGS
%testers ALL= NOPASSWD: SETENV: LOGS
El archivo funciona como se esperaba, lo valida visudo
y bloquea comandos no deseados. Pero cada vez que ejecuto un comando con sudo, aparece este mensaje antes de la salida real del comando:
john@appserver1:~$ sudo ls /var/log/mysql
/etc/sudoers.d/50-apps:2:51: Alias "" already defined
/etc/init.d/app1, /etc/init.d/app2
^
/etc/sudoers.d/50-apps:5:40: Alias "�h6�U" already defined
/bin/ls /var/log/*
La basura en la segunda línea cambia en cada ejecución. ¿Cuál podría ser el problema?
PD: Conozco los recorridos de ruta y las correcciones agregadas, pero mantengamos este ejemplo simple.
Respuesta1
Esto puede suceder si los archivos sudoers se incluyen dos veces, lo que puede suceder si /etc/sudoers contiene dos líneas con el mismo significado, como por ejemplo:
@includedir /etc/sudoers.d
#includedir /etc/sudoers.d
Ahora, todos los archivos en /etc/sudoers.d/ se leerán dos veces y generarán la advertencia anterior.