Sto scrivendo uno script di bash che chiama molti altri script.
Diversi script devono essere eseguiti come utente_1 ma diversi come utente_2.
Gli script devono essere chiamati in sequenza stretta. Comincio il mio script come utente_1 e uso su molte volte per diventare utente_2. Questi tempi su richiede una password, quindi devo ridigitarla molte volte. Vorrei evitarlo, ma su non ha parametri di password.
sudo e expect non sono installati.Esecuzione di script utilizzando più utenti
risposta
Ho risolto il problema usando ssh. Ho generato la chiave di autenticazione per utente_1 e pubblicata per utente2. La password non è più necessaria.
ssh -l user_1 hostname "command_1; command_2"
Fai un fork (usando '&') per utente_1 e per utente_2. Dovrebbero comunicare (simile a client-serwer) usando 'lock file' (semaforo). Per esempio user_1 fare qualcosa e il controllo utente_2 è 'file di blocco' esistere in mentre ... sonno ciclo
Forse è stupido, ma è possibile utilizzare i tasti
ssh [email protected]
finali
Se vi capita avere zsh, penso che si può fare facilmente - qualcosa come:
#!/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
...
Se sei bloccato e hai zsh, vale comunque la pena provare.
Anche Bash 4 e ksh hanno coprocesses. –
È possibile eseguire come utente root. Sembra rischioso? No, se si è attenti e precedere ogni comando con su e aggiungere il nome utente in questo modo:
su -c user_1 'script1' & & su -c utente_2 'SCRIPT2'
Questo vi (supponendo che si avvia come root) cambia utente a utente_1 prima di eseguire script1, quindi torna a root, quindi cambia in user_2 per eseguire script2 .. il tutto senza richiedere password multiple.
Sembra buono, ma il mio script deve essere eseguito su un server aziendale. La password di root è nota solo per l'amministratore di sistema. –
Puoi fornire ulteriori dettagli sul motivo per cui hai bisogno dei due utenti? Hai le password per entrambi .. Potresti forse chownare i file dei risultati alla fine? – Spaceghost
Questo sarà uno script di installazione. Stiamo utilizzando 2 diversi strumenti per la nostra appliacazione. Entrambi gli strumenti devono essere installati come utente speciale. Questa regola è richiesta dal produttore di strumenti. I componenti degli strumenti sono costruiti l'uno sull'altro. Ciò significa che devo installare il primo strumento piuttosto che avviare alcuni componenti. Successivamente devo installare lo strumento 2., avviare altri componenti dal primo strumento, fare altre operazioni. Questo è lo scenario approssimativo. –
- 1. Esecuzione di più script/sessioni R
- 2. Esecuzione sicura degli script PHP degli utenti sul server
- 3. Utilizzando page.open più in Script singolo
- 4. Esecuzione di MSTest UnitTests utilizzando uno script MSBuild
- 5. Esecuzione di un file EXE utilizzando uno script PowerShell
- 6. Esecuzione di script in HtmlAgilityPack
- 7. Esecuzione script Cmder bash
- 8. esecuzione di uno script all'interno di un contenitore finestra mobile utilizzando script di shell
- 9. Esecuzione di script PHP simultanei
- 10. Javascript script di blocco di esecuzione
- 11. Esecuzione moduli come script
- 12. Multithreading - più utenti
- 13. Esecuzione di query su più archivi Hive utilizzando Apache Spark
- 14. Esecuzione di uno script da Groovy
- 15. Esecuzione di script bash con npm
- 16. esecuzione di uno script Python da PHP
- 17. Esecuzione di script bash in gradle
- 18. esecuzione grunt ferma script batch
- 19. Esecuzione di script bash in upstart .conf script
- 20. Kafka: impossibile creare più utenti di streaming
- 21. SoapUI Plugin Maven - esecuzione di più progetti
- 22. Esecuzione PHP lunga per utenti con latenza elevata (?)
- 23. Come posso utilizzare uno script per creare utenti in mongodb?
- 24. Codice python più sicuro in esecuzione
- 25. Esecuzione script hook lato client
- 26. Esecuzione di script Groovy da Gradle
- 27. Esecuzione di script bash da java
- 28. Esecuzione di script groovy in codice Java
- 29. Esecuzione di uno script Powershell in Fake
- 30. Script di php in esecuzione autonoma?
Questa è stata anche la mia prima idea e sarebbe sicuramente stata una grande soluzione. L'ho trovato troppo rischioso. Potrebbe causare problemi in futuro quando lo script diventerà più comico. –