Linux-Shell-Skript zum Wechseln des Benutzers und Aufforderung des erforderlichen Informationshintergrunds zum Skript
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 su
wird. 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
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