Ich schreibe ein Bash-Skript, das viele andere Skripts aufruft.
Mehrere Skripte müssen als Benutzer_1, aber mehrere als Benutzer_2 ausgeführt werden.
Die Skripte sollten in strikter Reihenfolge aufgerufen werden. Ich beginne mein Skript als user_1 und benutze su viele Male, um user_2 zu werden. Diese Zeiten su erfordert ein Passwort, also muss ich es oft wiederholen. Ich möchte das vermeiden, aber su hat keinen Passwort-Parameter.
sudo und expect sind nicht installiert.Ausführen von Skripts mit mehr Benutzern
Antwort
Ich habe das Problem mit ssh gelöst. Ich habe den Authentifizierungsschlüssel für Benutzer_1 generiert und für Benutzer2 veröffentlicht. Passwort wird nicht mehr benötigt.
ssh -l user_1 hostname "command_1; command_2"
Machen Sie eine Gabel für user_1 und für user_2 ('&' verwenden). Sie sollten (ähnlich wie Client-Server) mit 'Sperrdatei' (Semaphore) kommunizieren. Zum Beispiel user_1 etwas und user_2 Prüfung zu tun ist ‚Lock-Datei‘ existiert in während ... Schlaf Schleife
Vielleicht ist das dumm, aber Sie können
ssh [email protected]
Ende Tasten
Wenn Sie passieren zsh zu haben, 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 stecken bleiben und zsh haben, ist es trotzdem einen Versuch wert.
Bash 4 und ksh haben auch Coprozesse. –
Sie könnten 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) Ändern Sie den Benutzer in user_1, bevor Sie script1 ausführen, und wechseln Sie dann zurück zu root. Wechseln Sie dann zu user_2, um script2 .. all zu starten, ohne nach mehreren Passwörtern zu fragen.
Hört sich gut an, aber mein Skript muss auf einem Firmenserver laufen. Das Root-Passwort ist nur dem Systemadministrator bekannt. –
Können Sie genauer erklären, warum Sie die beiden Benutzer benötigen? Sie haben die Passwörter für beide .. Könnten Sie vielleicht die Ergebnisdateien am Ende chown? – Spaceghost
Dies wird ein Installationsskript sein. Wir verwenden 2 verschiedene Werkzeuge für unsere Anwendung. Beide Tools müssen als spezielle Benutzer installiert werden. Diese Regel wird vom Hersteller von Werkzeugen benötigt. Die Komponenten der Werkzeuge bauen aufeinander auf. Das bedeutet, dass ich das erste Tool installieren muss, anstatt einige Komponenten zu starten. Als nächstes muss ich das 2. Werkzeug installieren, andere Komponenten vom ersten Werkzeug starten, einige andere Operationen ausführen. Dies ist das grobe Szenario. –
- 1. Ausführen eines Skripts von Groovy
- 2. Ausführen von R-Skripts mit Plots
- 3. Ausführen von Skripts in HtmlAgilityPack
- 4. Ausführen eines C FastCGI-Skripts mit NGINX
- 5. Wie Debuggen mit npm Ausführen von Skripts von VSCode?
- 6. Ausführen eines Programms/Skripts von QMake
- 7. Ausführen von Python-Skripts in Android
- 8. Ausführen eines Python-Skripts außerhalb von Django
- 9. Ausführen eines PowerShell-Skripts von SSIS
- 10. Ausführen eines Bash-Skripts von Golang
- 11. django- Ausführen eines Skripts von admin
- 12. Ausführen eines Python-Skripts mit Cron
- 13. Ausführen eines Python-Skripts mit Cron?
- 14. Ausführen eines Bash-Skripts in Applescript
- 15. Ausführen von Eclipse auf dem Mac mit zwei Benutzern
- 16. Ausführen eines SQL-Skripts mit MySQL mit JDBC
- 17. Ausführen eines Skripts von einem Skript in Android
- 18. Zwei Python-Skripts parallel mit boost :: python ausführen
- 19. Fehler beim Ausführen meines Python-Skripts
- 20. Ausführen eines Skripts in Eclipse, bevor bauen
- 21. Ausführen eines Python-Skripts auf Marionette
- 22. Ausführen eines npm-Skripts aus der Schlucktask
- 23. Ausführen eines Sqlite3-Skripts über die Befehlszeile
- 24. Ausführen eines Exchange 2013-Skripts über PowerShell
- 25. PHP-Seite zum Ausführen eines Skripts
- 26. Hotkey zum Ausführen des gesamten Skripts
- 27. Ausführen eines Skripts über Telnet in Python
- 28. PowerShell-Skripts ausführen, ohne PowerShell zu installieren?
- 29. Maven exec plugin - Ausführen eines Python-Skripts
- 30. Vorbereitende Umgebung zum Ausführen eines Powershell-Skripts
Das war auch meine erste Idee und es wäre sicherlich eine großartige Lösung. Ich fand es zu riskant. Es könnte in der Zukunft Probleme verursachen, wenn das Skript komplexer wird. –