Wie kann man dafür sorgen, dass sudo das Passwort automatisch akzeptiert, ohne danach zu fragen?

Wie kann man dafür sorgen, dass sudo das Passwort automatisch akzeptiert, ohne danach zu fragen?

Ich habe einen Benutzer mit dem Namen „shut“ erstellt, sodass die Maschine jedes Mal heruntergefahren wird, wenn sich jemand mit diesem Benutzernamen anmeldet. Dazu habe ich den folgenden Befehl am Ende der .profile-Datei eingefügt.

exec sudo shutdown -h now

Dies hat jedoch nicht den Zweck erfüllt. Wenn sich der Benutzer anmeldet, wird nicht die Maschine heruntergefahren, sondern der Anmeldebildschirm wird wieder angezeigt. Der Benutzer kann sich also nicht anmelden, erhält aber gleichzeitig denselben Anmeldebildschirm zurück.

Der Grund dafür ist meiner Meinung nach, dass die Maschine nicht heruntergefahren wird, weil kein Kennwort für den Benutzer „shut“ angegeben wurde. Und aufgrund von „exec“ wird der Anmeldebildschirm wieder angezeigt (was in Ordnung ist).

Um mein Problem zu lösen, brauche ich nun eine Möglichkeit, damit mein Passwort automatisch übernommen wird, wenn der obige sudo-Befehl ausgeführt wird. Ich habe es überprüft man sudound denke, -Adass diese Option verwendet werden muss.

Ich folgte dieser Manpage und führte

SUDO_ASKPASS=/home/ravbholua/pass.txt

export SUDO_ASKPASS

Um zu prüfen, ob es funktioniert, habe ich

ravbholua@ravbholua-Aspire-5315:~$ sudo -A pwd

sudo: unable to run /home/ravbholua/pass.txt: Permission denied

Aus dieser Ausgabe folgt, dass diese Pfaddatei ausgeführt werden muss und mein Passwort als Ausgabe an sudo bereitstellen muss. Ich dachte vorher, es würde das Passwort aus dieser Datei namens pass.txt nehmen, also habe ich mein Passwort in diese Datei eingegeben. Aber nein!!!!!!!

Bitte alle Vorschläge!

Antwort1

SUDO_ASKPASS soll eine Binärdatei sein, die den Benutzer zur Eingabe eines Passworts auffordert. Ein Anwendungsbeispiel hierfür wäre, dass in einer GUI ein Fenster angezeigt wird, in dem der Benutzer bei der Verwendung eines GUI-Programms aufgefordert wird, sein Passwort einzugeben. Auf der Manpage steht dazu Folgendes:

Gibt den Pfad zu einem Hilfsprogramm zum Lesen des Kennworts an, wenn kein Terminal verfügbar ist oder die Option -A angegeben ist.

Um das zu tun, was Sie möchten, möchten Sie wahrscheinlich Ihre Datei /etc/sudoers bearbeiten, damit der Benutzer „shut“ das Herunterfahren ohne Angabe eines Kennworts ausführen kann. Die folgende Zeile ermöglicht es dem Benutzer „shut“, „/sbin/shutdown -h now“ und „/sbin/shutdown -r now“ auf „ALLEN“ Maschinen auszuführen.

shutdown ALL = NOPASSWD: /sbin/shutdown -h jetzt, /sbin/shutdown -r jetzt

Eine unsicherere Option wäre, die Option „-S“ von sudo zu verwenden, um das Kennwort von stdin zu lesen und es wie folgt dorthin zurückzugeben:

echo "Passwort" | sudo -S shutdown -h jetzt

verwandte Informationen