Ich habe ein lokales Shell-Skript, das eine Reihe von Tests auf einem Remote-Host ausführt, bevor die Nutzdaten bereitgestellt werden. Einer dieser Tests ist, ob der Benutzer über Sudo-Berechtigungen verfügt. Er muss lediglich überprüft werden, wobei sudo -v
der Benutzer sein Kennwort eingeben muss. Außerdem scheint der Remote-Host ein sofortiges Sudo-Timeout zu haben, sodass die Kennworteingabe bei jeder neuen Verbindung erforderlich ist, und dies ist etwas, zu dessen Änderung ich (als Richtlinie) keine Berechtigung habe.
Ich kann natürlich testen, ob der Benutzer zu bestimmten Gruppen gehört, aber dies wäre dann nicht unabhängig von der Konfiguration des Remote-Hosts. Daher habe ich gehofft, dass es eine Methode gibt, mit der überprüft werden kann, ob auch die Gruppen des Benutzers übernommen werden müssen als nicht Benutzereingabe benötigen?
Vielen Dank!
UPDATE: Um meine Kommentare wiederzugeben, möchte ich nur testen, ob ein Benutzer möglicherweise sudo kann, ohne dass eine Benutzerinteraktion für diesen Test erforderlich ist.
sudo -l
fragt mich nach meinem Passwort.sudo -k
zuerst.Antworten:
Ich fürchte, Sie können nur testen, ob der Benutzer über Sudo-Berechtigungen ohne Kennwort verfügt.
Ausführen
Wenn $? ist 0, hat der Benutzer sudo-Zugriff ohne Passwort, wenn $? 1 ist, benötigt der Benutzer ein Passwort.
Wenn Sie eine Überprüfung für ein bestimmtes Programm benötigen, ändern Sie dies
true
mit Ihrem Programm, so dass das Programm nichts tut, wie zchmod --help
quelle
X
ist dersudo
Lage , ein Passwort ohne Eingabe und ohne sie versehentlich zu laufenWenn Sie einen Benutzer mit sudo-Zugriff haben, z. B. "root", können Sie damit andere Anmeldungen überprüfen. Als der Benutzer mit Zugriff ausführen:
sudo -n -l -U foo 2> & 1 | egrep -c -i "sudo darf nicht ausgeführt werden | unbekannter Benutzer"
Wenn es Null zurückgibt, hat "foo" Zugriff. Andernfalls hat es keinen sudo-Zugriff.
quelle
sudo -n -l cmd
und Sie werden informiert, ob der aktuelle Benutzer sudo-Zugriff auf cmd hat. Wenn Sie das Ergebnis testen möchten.Das sollte dir genug geben, um zu entscheiden, ob du die Privilegien hast, die du willst / brauchst.
quelle
Ich weiß, dass dies eine super alte Frage ist, aber ich habe Glück mit der
-n
(nicht interaktiven) Flagge und-v
/ oder gefunden-l
. Sie müssen jedoch die Ausgabe überprüfen:Etwas Ausgabeumleitung und Grepping werden Sie wahrscheinlich dahin bringen:
quelle