Frage

Ich schreibe ein Bash-Skript, das viele andere Skripte aufruft.
Mehrere Skripte müssen als user_1 aber mehrere diejenigen als user_2 ausgeführt.
Die Skripte sollten in strikter Reihenfolge aufgerufen werden. Ich mein Skript als user_1 beginnen und oft mit su werden user_2. Diese Zeiten su ein Passwort benötigt, so dass ich es viele Male erneut eingeben müssen. Ich möchte, dass vermeiden, aber su hat kein Passwort Parameter.
sudo und erwarten nicht installiert sind.

War es hilfreich?

Lösung 4

Ich habe das Problem mit ssh gelöst. Ich habe den Authentifizierungsschlüssel für user_1 generiert und user2 veröffentlicht. Das Passwort ist nicht mehr erforderlich.

ssh -l user_1 hostname  "command_1; command_2"

Andere Tipps

  • Erstellen Sie eine Gabel (mit '&') für user_1 und für user_2. Sie sollen (ähnlich wie Client-serwer) mit 'Lock-Datei' (Semaphore) kommunizieren. Zum Beispiel user_1 etwas und user_2 Prüfung zu tun ist 'Sperrdatei' exist in , während ... sleep Schleife

  • Vielleicht ist dumm, aber Sie können ssh user@localhost Ende-Tasten

  • verwenden

Wenn Sie haben zsh passieren, ich glaube, Sie dies leicht tun können - so etwas wie:

#!/bin/zsh
coproc user1_script
su user2
do_stuff
echo "your_turn" >&p
read MY_TURN
do_more_stuff
echo "your_turn" >&p
read MY_TURN
...

user1_script:

#!/bin/zsh
read MY_TURN
do_stuff
echo your_turn
read MY_TURN
do_more_stuff
...

Wenn Sie sich fest, und haben zsh, es ist einen Versuch wert sowieso.

Sie können als root ausführen. Klingt riskant? Nicht, wenn Sie vorsichtig sind und jeden Befehl mit su vorangehen und den Benutzernamen hinzufügen, etwa so:

su -c 'script1' user_1 && su -c 'script2' user_2

Dies wird (vorausgesetzt, Sie als root starten), um den Benutzer ändern, bevor user_1 script1 laufen root dann zurück dann zu user_2 ändern script2 zu laufen .. alles ohne für mehrere Passwörter zu fragen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top