Pagina 1 di 1

eseguire programmi con credenziali di un altro utente

Inviato: lun 25 dic 2006, 21:02
da whites11
Ciao e buon natale a tutti!
vorrei eseguire dei demoni all'avvio di sistema, ma necessito di farli avviare con le credenziali di un utente, ma mettendo il comando in rc.local il demone è eseguito dall'utente root, come fare?

Inviato: lun 25 dic 2006, 21:22
da mr_hyde
Mai provato di persona:

Codice: Seleziona tutto

su utente -c comando
e editando /etc/suauth per fare in modo di evitare di chiedere la password, se necessario (ma rc.local dovrebbe essere eseguita da root, quindi non credo ti chiedera' la password)

Pero' forse dovresti dirci cosa vuoi far eseguire in rc.local con credenziali diverse da root, giusto per vedere se il tuo approccio e' corretto.
Ciao,
Mr Hyde

Inviato: lun 25 dic 2006, 21:52
da whites11
perfetto, funziona! grazie!
ho creato un serverino di scarrrrrricamento h24 e vorrei che mi facesse partire amuled e amuleweb con credenziali di utente normale (scelta saggia,non credi?)

Inviato: lun 25 dic 2006, 22:12
da whites11
ok, non è così perfetto!!! :(
ho inserito in rc.local le righe:

Codice: Seleziona tutto

su utente -c amuled & >/home/utente/amuled.log
sleep 5
su utente -c amuleweb & >/home/utente/amuleweb.log
purtroppo, però, mentre amuled funziona perfettamente, amuleweb non funziona in background! solo che se ci tolgo il "&" ovviamente il sistema non parte correttamente e non mi offre shell di login, cosa quest non fondamentale per una macchina monitor-less, però...
avete idee?

Inviato: mar 26 dic 2006, 3:29
da Dani
Se non sbaglio in quel modo non lo mandi in background, ma invii l'output (stdout e stderr) nel file di log.

Prova a modificare la riga così:

Codice: Seleziona tutto

su utente -c amuleweb &>/home/utente/amuleweb.log &

Inviato: mar 26 dic 2006, 11:17
da Paoletta
whites11 ha scritto:

Codice: Seleziona tutto

su utente -c amuled & >/home/utente/amuled.log
sleep 5
su utente -c amuleweb & >/home/utente/amuleweb.log
tra l' altro usando bash ho fatto una prova con

Codice: Seleziona tutto

du & &>file
e ho notato che così non redirigi output ed error dove vorresti perchè l'esecuzione del comando parte prima della redirezione;

per cui io userei questa sintassi:

Codice: Seleziona tutto

su utente -c amuled &>/home/utente/amuled.log &
sleep 5
su utente -c amuleweb &>/home/utente/amuleweb.log &
la sintassi corretta per redirigere output ed error è quella che ho usato io sopra (senza spazi tra & e >)

Inviato: mar 26 dic 2006, 12:26
da whites11
grazie per le risposte, provo e vi faccio sapere

Inviato: mar 26 dic 2006, 19:45
da whites11
ok, ho semirisolto:
rc.local ora è così:

Codice: Seleziona tutto

su scarricatore -c amuled &
sleep 5
su scarricatore -c amuleweb
il redirect l'ho tolto perchè non funzionava...(comunque non è un problemone...
ho dovuto togliere anche il backgrounding del secondo comando pena il non funzionamento del comando stesso....il perchè non lo conosce nessuno!
comunque sia, rc.local dovrebbe essere l'ultimo script eseguito all'avvio dalla macchina, quindi il fatto che il terminale rimanga occupato da amuleweb non dovrebbe essere un problema.
grazie a tutti!

Inviato: mar 26 dic 2006, 20:03
da gioco
Per usare le redirezioni prova a scrivere il comando fra ".