it-swarm.com.de

Überprüfen Sie an der Eingabeaufforderung, ob der Sudo-Modus aktiviert ist (Kennwort wird zwischengespeichert)

Ich möchte wissen, ob es möglich ist, in der Befehlszeile (idealerweise in der Eingabeaufforderung) anzugeben, ob Sudo-Modus aktiviert ist.

Mit Sudo-Modus meine ich, dass ich mein Passwort bereits einmal in dieser Shell-Sitzung korrekt eingegeben habe und es noch nicht abgelaufen ist, aber immer noch zwischengespeichert ist.

Mit anderen Worten, kann ich irgendwie sagen, ob der Befehl Sudo, den ich ausführen werde, mich nach meinem Kennwort fragt oder die zwischengespeicherten Anmeldeinformationen verwendet?

3
Byte Commander

Seit langer Zeit benutze ich

Sudo -S true < /dev/null 2> /dev/null

Sie könnten das versuchen, aber ein kürzlich durchgeführtes Update scheint dies nicht zu tun, da ich jetzt einen Segmentierungsfehler erhalte.

Sie könnten versuchen, Sudo -n true 2> /dev/null (Nein -v). Das scheint für mich zu funktionieren, ohne das Timeout zu verlängern.

Sie können dies in Ihrer Eingabeaufforderung auf verschiedene Arten ausführen, z. B .:

PS1='\u:\w$(Sudo -n true 2> /dev/null && echo " : Sudo :") \$ '

Dies hängt von der Option promptvars ab, die standardmäßig aktiviert ist.

Beachten Sie, dass der Indikator nach der Ausgabe der Eingabeaufforderung nicht erneut aktualisiert wird. Wenn sich die Eingabeaufforderung dort befindet, bis das Zeitlimit abgelaufen ist, kann dies darauf hinweisen, dass Sudo aktiv ist, obwohl es abgelaufen ist.

2

Es gibt keinen Befehl zum direkten Anzeigen der verbleibenden Zeit für zwischengespeicherte Anmeldeinformationen. Sie müssten ein Skript erstellen.

Von https://unix.stackexchange.com/questions/115506/Sudo-testing-for-credentials

Sudo -nv 2> /dev/null

wenn das Kennwort zwischengespeichert wird, wird ein Exit-Wert von 0 ausgegeben. Möglicherweise können Sie das Skript in diesem Link ändern oder ein eigenes schreiben.

Alternativ werden die Zeitstempel in /var/lib/Sudo Gespeichert, sodass Sie wahrscheinlich auch ein Skript schreiben können, um den Zeitstempel anzuzeigen oder zu überprüfen.

1
Panther