Führen Sie sudo -v
aus . Es wird normalerweise verwendet, um Ihr Sudo-Passwort-Timeout zu verlängern, kann aber verwendet werden, um festzustellen, ob Sie sudo
haben Privilegien.
$ sudo -v
Sorry, user [username] may not run sudo on [hostname].
Auszug aus der Manpage:
Wenn die Option -v (validate) angegeben wird, aktualisiert sudo den Zeitstempel des Benutzers und fordert bei Bedarf zur Eingabe des Kennworts des Benutzers auf. Dies verlängert das sudo-Timeout um weitere 5 Minuten (oder wie auch immer das Timeout in sudoers eingestellt ist), führt aber keinen Befehl aus.
Wenn Ihr Benutzer nur bestimmt ausführen darf Befehlen, funktioniert dieser Befehl und zeigt an, dass Sie berechtigt sind, etwas auszuführen mit unterschiedlichen Privilegien. Während die Meldung anders aussieht, wenn Sie versuchen, einen Befehl auszuführen, der Ihnen in diesem Fall nicht erlaubt ist (und keine Mail an root gesendet wird ), ist es immer noch möglich, dass Sie in Schwierigkeiten geraten, wenn die Administratoren /var/log/secure
lesen .
$ sudo ls
[sudo] password for [username]:
Sorry, user [username] is not allowed to execute '/bin/ls' as root on [hostname].
Um was herauszufinden Sie dürfen mit unterschiedlichen Rechten laufen, Sie können sudo -l
verwenden . Beachten Sie, dass Sie für diesen Befehl Ihr Passwort eingeben müssen.
Das ist sehr einfach. Führen Sie sudo -l
aus . Dies listet alle Sudo-Berechtigungen auf, die Sie haben.
Hier ist die skriptfreundliche Version:
timeout 2 sudo id && echo Access granted || echo Access denied
da es nicht bei der Passworteingabe hängen bleibt, wenn Sie nicht den sudo
haben Zugriff.
Sie können es auch in einer Variablen setzen wie:
timeout 2 sudo id && sudo="true" || sudo="false"
echo "$sudo"