Linux-Shell-Skript zum Wechseln des Benutzers und Aufforderung des erforderlichen Informationshintergrunds zum Skript

Nov 20 2020

Ich benötige ein Beispiel für ein Linux-Shell-Skript für das folgende Szenario:

Während der interaktiven Sitzung:

su user1
Password: <Type password>

Ich werde das Passwort in einer Datei speichern (zB :) ~/pwd.txt. Ich benötige ein Shell-Skript, sodass bei der Ausführung dieses Skripts das Kennwort für den Zielbenutzer aus der Datei gelesen und automatisch an übergeben suwird. Anschließend wechsle ich zum Zielbenutzer. Es ist nicht notwendig, die Eingabeaufforderung anzuzeigen. Es wäre in Ordnung, wenn alles im Hintergrund verarbeitet wird und ich nur den Wechsel zum neuen Benutzer direkt sehe.

Bitte helfen Sie!

Vielen Dank!

Antworten

RedaSalih Nov 20 2020 at 22:56

Es ist nicht gesichert, Ihr unformatiertes Passwort in einer Datei zu speichern. Aber zumindest wird dies eine Antwort auf Ihre Frage sein.

Verwenden von NOPASSWD in Sudoern

Fügen Sie Ihren Sudoern den folgenden Eintrag hinzu:

<your_user> ALL=NOPASSWD: /bin/su - user1
#Then simply run
sudo -S su - user1

Ohne Sudoer : Nützlich für nicht interaktive Shells

su - user1 -c ""  < ~/pwd.txt &>/dev/null

< ~/pwd.txt Leiten Sie Ihr in ~ / pwd.txt gespeichertes Passwort zum Befehl su um.

&>/dev/null Leiten Sie sowohl stdout als auch sterr nach> / dev / null um.

## BESSER ## :

Sie können das gpg- Tool verwenden, um Ihr Passwort zu verschlüsseln:

    # Encrypt your password with choosing a passphrase :
    gpg -c ~/pwd.txt 
    # Remove your raw password file :
    rm -f ~/pwd.txt.gpg

Wenn Sie versuchen, su zu verwenden, verwenden Sie die oben genannten Schritte, um Ihr Passwort zu entschlüsseln :

su - user1 -c ""  <<< "$(gpg -q -d ~/pwd.txt.gpg 2>/dev/null)" &>/dev/null