Mehrere Sudo-Typen für einen Benutzer

Mehrere Sudo-Typen für einen Benutzer

Ich habe eine Situation, in der ich möchte, dass der Hauptadministratorbenutzer (mit sudo für alle) für einen Befehl kennwortloses sudo als anderer Benutzer hat. Meines Wissens sollte das Folgendes in /etc/sudoers ergeben:

ramo   ALL=(otherUser) NOPASSWD: /usr/bin/command
ramo   ALL=(ALL) ALL

Aber es scheint, als stünden diese beiden Zeilen im Konflikt, oder die zweite überschreibt die erste. Irgendwelche Ideen, wie man das erreichen kann?

Prost

Ramo

BEARBEITEN: Es stellte sich heraus, dass ich die Funktionsweise von sudo beim Angeben eines Benutzers leicht missverstanden hatte. Ich war der Meinung, dass Sie bei ALL=(otherUser) nicht „sudo -u otherUser“ ausführen müssen, sondern einfach sudo verwenden können. Dies ist nicht der Fall.

Antwort1

Die Reihenfolge ist wichtig und das Verhalten wird in der Manpage sudoers(5) beschrieben:

Wenn mehrere Einträge für einen Benutzer übereinstimmen, werden sie der Reihe nach angewendet. Bei mehreren Übereinstimmungen wird die letzte Übereinstimmung verwendet (die nicht unbedingt die spezifischste Übereinstimmung ist).

Bei Ihren ursprünglichen Regeln ist „(ALL) ALL“ die letzte Übereinstimmung und sudo fordert Sie daher zur Eingabe des Kennworts auf.

Das folgende /etc/sudoers funktioniert:

ramo   ALL=(ALL) ALL
ramo   ALL=(otherUser) NOPASSWD: /bin/whoami

z.B:

$ sudo -k /bin/whoami
[sudo] password for ramo: 
root
$ sudo -k -u otherUser /bin/whoami
otherUser
$ sudo -k -u otherUser /bin/true
[sudo] password for ramo:
$ sudo -k /bin/true
[sudo] password for ramo:

Getestet auf Fedora 19 mit sudo-1.8.6p7-1

Antwort2

Ich denke, Sie können mit '!' negieren. Versuchen Sie die zweite Zeile

ramo ALL=(ALL) !/usr/bin/command

verwandte Informationen