Ich kann den Unterschied zwischen diesen beiden Befehlen nicht verstehen
USER ALL=(ALL) NOPASSWD: ALL
UND USER ALL=(OTHERUSER) NOPASSWD: ALL
Kann mir jemand die () Änderung erklären? Vielen Dank
Ich kann den Unterschied zwischen diesen beiden Befehlen nicht verstehen
USER ALL=(ALL) NOPASSWD: ALL
UND USER ALL=(OTHERUSER) NOPASSWD: ALL
Kann mir jemand die () Änderung erklären? Vielen Dank
Antworten:
Von man 5 sudoers
:
Die Grundstruktur einer Benutzerspezifikation ist
who where = (as_whom) what
.
Und
Das reservierte Wort
ALL
ist ein integrierter Alias, durch den eine Übereinstimmung immer erfolgreich ist.
In Ihrem Fall liegt der Unterschied in (as_whom)
Feld:
(ALL)
bedeutet, es ist möglich für USER
Befehle als jeder Benutzer ausführen. (OTHERUSER)
bedeutet, es ist möglich für USER
Befehle ausführen als OTHERUSER
(z.B. sudo -u OTHERUSER whoami
).
Beachten Sie, dass es nicht bedeutet USER
Befehle können nicht ausgeführt werden als YETANOTHERUSER
. Ob USER
versucht etwas wie laufen zu lassen YETANOTHERUSER
dann die Zeile mit (OTHERUSER)
passt nicht zusammen und der Parser wird fortgesetzt; Einige spätere Zeilen stimmen möglicherweise überein.
sudo -u chosen_user some_command
, wie im Beispiel, das ich zu meiner Antwort hinzugefügt habe. Wenn der Benutzer ausgeführt werden darf some_command
wie chosen_user
Dann wird der Befehl mit den Rechten von ausgeführt chosen_user
.
USER
kann sudo Befehle ausführen alsOTHERUSER
Name oder wird nur die Privilegien der habenOTHERUSER
?