So geben Sie das Passwort direkt an das sudo su -<someuser> in Shell-Scripting </someuser>
750
raamsaara
Ich habe eine Anforderung erhalten, in Shell-Skript zu automatisieren, für sudo su -<someuser>das nach Kennwort gefragt wird.
So geben Sie das Kennwort direkt an das sudo su-in-Shell-Scripting für IBM AIX-Server. Ich habe versucht es zu benutzen echo <password> | sudo su -<someuser>hat nicht funktioniert. Bitte helfen Sie dabei.
3 Antworten auf die Frage
1
chloesoe
Benutzen -S
man sudo:
-S, --stdin Schreiben Sie die Eingabeaufforderung in den Standardfehler und lesen Sie das Kennwort aus der Standardeingabe, anstatt das Endgerät zu verwenden. Dem Passwort muss ein Zeilenvorschubzeichen folgen.
so können sie verwenden:
echo <myPassword> | sudo -S su <someuser>
Edit: Das oben funktionierte auf einem Ubuntu-Test nicht. Es scheint, als sei der zweite Befehl "su" nach der Abfrage des Passworts zu schnell.
Ich habe eine Problemumgehung gemacht, um eine Sekunde zu warten, damit das Echo-Passwort ausgefüllt werden konnte, und dann sollte Sudo in der Lage sein, Folgendes auszuführen sudo su - foobar:
In meinem Debian gibt 'su' aus. `Sudo su -` wird jedoch dank der zwischengespeicherten Anmeldeinformationen unmittelbar nach der Ausführung aufgerufen. Es kann eine Problemumgehung sein, wenn Sie sich auf dieses Verhalten verlassen können.
Kamil Maciorowski vor 6 Jahren
0
es funktioniert nicht.
raamsaara vor 6 Jahren
0
@raamsaara: was hat genau nicht funktioniert? hast du einen fehler bekommen Inzwischen bearbeitete ich meine Antwort, um eine Problemumgehung hinzuzufügen, die auf meinem Rechner funktionierte.
chloesoe vor 6 Jahren
0
1
Kamil Maciorowski
Mit expect. Ein Stub- Befehl kann folgendermaßen aussehen: