
Meine Anforderung besteht darin, mich als anderer Benutzer anzumelden, was eine Kennwortauthentifizierung erfordert, und einige Befehle als dieser Benutzer in einem Shell-Skript auszuführen, das ich von meinem Benutzerkonto aus ausführe.
Beispiel: Benutzer1 führt das Skript aus. Voraussetzung ist, dass Sie sich als Benutzer2 mit Passwort anmelden und eine Befehlsgruppe mit einem einzigen Shell-Skript ausführen.
Antwort1
Sie können mehrere Möglichkeiten nutzen:
- Mit
su
. Via su können Sie den Befehl folgendermaßen ausführen:
su user -c "command"
oder
su - user -c "command"
der Unterschied besteht darin, dass Sie mit dem Dash die Umgebung des Zielbenutzers erhalten. Mit diesem Befehl werden Sie nach dem Passwort des Zielbenutzers gefragt
- Verwendung von
sudo
:
sudo -u user "command"
Mit diesem Befehl führen Sie es mit oder ohne Passwort (Ihr Passwort) aus.
- Verwendung von
ssh
:
Mit ssh können Sie den Befehl mit dem Passwort für den Benutzer und dem Passwort für den Schlüssel (sofern vorhanden) ausführen.
ssh user@localhost "command"
PS Es gibt auch andere mögliche Methoden, die selten möglich sind, wie rsh
Antwort2
Mit diesem Befehl su [username]
können Sie einen Befehl im Kontext dieses Benutzers vom aktuellen Standort aus ausführen. Mit dem folgenden Befehl su - [username]
wechseln Sie in das Stammverzeichnis dieses Benutzers. Wenn Sie den Benutzernamen weglassen, wechseln Sie zu root.