Wie melde ich mich in einem Shell-Skript als anderer Benutzer an und führe eine Reihe von Befehlen aus?

Wie melde ich mich in einem Shell-Skript als anderer Benutzer an und führe eine Reihe von Befehlen aus?

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:

  1. 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

  1. Verwendung von sudo:

sudo -u user "command"

Mit diesem Befehl führen Sie es mit oder ohne Passwort (Ihr Passwort) aus.

  1. 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.

verwandte Informationen