Ich habe die folgende Datei definiert in/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
Die Datei funktioniert wie erwartet, wird von visudo
unerwünschten Befehlen validiert und blockiert diese. Aber jedes Mal, wenn ich einen Befehl mit sudo ausführe, werde ich vor der eigentlichen Ausgabe des Befehls von dieser Meldung begrüßt:
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/*
Der Müll in der zweiten Zeile ändert sich bei jedem Durchlauf. Was könnte das Problem sein?
P.S.: Ich kenne die Pfaddurchquerungen und habe Korrekturen dazu hinzugefügt, aber lassen Sie uns dieses Beispiel einfach halten.
Antwort1
Dies kann passieren, wenn sudoers-Dateien zweimal eingefügt werden, was passieren kann, wenn /etc/sudoers zwei Zeilen mit derselben Bedeutung enthält, wie etwa:
@includedir /etc/sudoers.d
#includedir /etc/sudoers.d
Jetzt werden alle Dateien in /etc/sudoers.d/ zweimal gelesen und verursachen die oben genannte Warnung.