Ich kann ein sumit su <username>und es fragt nach meinem Passwort. Gibt es einen Passwort-Parameter, suso dass ich nicht nach einem Passwort gefragt werde?
Wenn Sie ein Skript schreiben möchten, das als ein anderer Benutzer ausgeführt wird, funktioniert so etwas, obwohl es das Wort "password" ohne Zeilenumbruch ausgibt, um es zu standardisieren
su - username <<!
enterpasswordhere
enter commands to run as the new user
!
Wenn Sie einen Benutzer mit dem Namen fred und dem Kennwort 1234 haben und ein ls von freds Ausgangsverzeichnis als fred abrufen möchten, ohne dass die Kennwortzeichenfolge angezeigt wird, sieht dies folgendermaßen aus
su - fred <<! >/dev/null 2>&1
1234
whoami > /dev/tty
ls > /dev/tty
!
Ich glaube, es gibt keine und es wäre keine gute Idee. Hier ist der Grund:
Wenn Sie ein Passwort in einem Befehl wie schreiben su <username> -p <password>, wird es in Ihrem Bash-Verlauf im Klartext gespeichert. Dies ist sicherlich ein großes Sicherheitsproblem.
Wenn Sie Befehle mit su(oder sudo) automatisiert ausführen müssen, schreiben Sie ein Shellscript, das die Befehle ohne suoder enthält, sudound führen Sie es aussu <username> script.sh
@DaiKaixian ja, aber es wird nirgendwo gespeichert und niemand kann es lesen
Wayne_Yux
2
Sie können versuchen, etwas wie: echo <passwd> | sudo -S <command-line>.Obwohl es nicht sicher ist, aber es funktioniert.
Dai Kaixian
1
Der springende Punkt meiner Antwort ist, dass es nicht sicher ist, ein Passwort in einen Befehl zu schreiben. Also
rate
-3
Wenn Sie bestimmte Befehle als neuer Benutzer ausführen möchten, verwenden Sie den folgenden Befehl: sudo -u {username} {command to be executed as the new user}
superuser
hier, superuser.com/questions/67765/...Antworten:
Wenn Sie ein Skript schreiben möchten, das als ein anderer Benutzer ausgeführt wird, funktioniert so etwas, obwohl es das Wort "password" ohne Zeilenumbruch ausgibt, um es zu standardisieren
Wenn Sie einen Benutzer mit dem Namen fred und dem Kennwort 1234 haben und ein ls von freds Ausgangsverzeichnis als fred abrufen möchten, ohne dass die Kennwortzeichenfolge angezeigt wird, sieht dies folgendermaßen aus
quelle
su: must be run from a terminal
.Ich glaube, es gibt keine und es wäre keine gute Idee. Hier ist der Grund:
Wenn Sie ein Passwort in einem Befehl wie schreiben
su <username> -p <password>
, wird es in Ihrem Bash-Verlauf im Klartext gespeichert. Dies ist sicherlich ein großes Sicherheitsproblem.Wenn Sie Befehle mit
su
(odersudo
) automatisiert ausführen müssen, schreiben Sie ein Shellscript, das die Befehle ohnesu
oder enthält,sudo
und führen Sie es aussu <username> script.sh
quelle
su root script
müssen noch passwd eingeben.echo <passwd> | sudo -S <command-line>
.Obwohl es nicht sicher ist, aber es funktioniert.Wenn Sie bestimmte Befehle als neuer Benutzer ausführen möchten, verwenden Sie den folgenden Befehl:
sudo -u {username} {command to be executed as the new user}
quelle