Ich kann ein su
mit su <username>
und es fragt nach meinem Passwort. Gibt es einen Passwort-Parameter, su
so dass ich nicht nach einem Passwort gefragt werde?
z.B su <username> -p <password>
superuser
hier, superuser.com/questions/67765/...
Ich kann ein su
mit su <username>
und es fragt nach meinem Passwort. Gibt es einen Passwort-Parameter, su
so dass ich nicht nach einem Passwort gefragt werde?
z.B su <username> -p <password>
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
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
!
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
(oder sudo
) automatisiert ausführen müssen, schreiben Sie ein Shellscript, das die Befehle ohne su
oder enthält, sudo
und führen Sie es aussu <username> script.sh
su root script
müssen noch passwd eingeben.
echo <passwd> | sudo -S <command-line>
.Obwohl es nicht sicher ist, aber es funktioniert.