PDA

Visualizza la versione completa : avviare applicativo in shell dopo il login


lulerry
21-07-2010, 10:15
Buon giorno a tutti! Avrei un problema, vorrei poter eseguire un piccolo script di shell subito dopo che l'utente ha eseguito correttamente il login. Non utilizzo nessuna gui e la shell che utilizzo è busybox.

Qualche idea su come potrei realizzare ciò? Utilizzare i runlevel non va bene poiché vengono eseguiti prima dell'autenticazione dell'utente, io voglio eseguire lo script dopo l'autenticazione.

sacarde
21-07-2010, 14:24
mah..... da busybox?


forse in :

~/.bash_profile
o
~/.bashrc

lulerry
21-07-2010, 14:45
Se usassi la shell bash dovrebbero andare bene, ma usando la busybox purtroppo quei file non esistono!

sacarde
21-07-2010, 20:35
il file /etc/profile cel'hai ?

lulerry
22-07-2010, 10:08
Il file etc/profile esiste, ed ho scoperto che esiste anche una cartella /etc/profile.d/. Credo di dover puntare a quella cartella per ottenere l'effetto desiderato! Adesso devo solo capire perché se avvio il programma in maniera "automatica" ha un comportamento diverso che se lo avvio manualmente...ho provato ad inserire anche dei ritardi (leggi sleep nello script) ma senza particolare successo. Gli script vengono avviati come utente con cui mi loggo, giusto?

sacarde
22-07-2010, 10:23
- forse un problema di variabili ?

- gli script in etc credo vengano avviati da root

lulerry
22-07-2010, 12:56
Non credo che sia un problema di variabili, i parametri sono scritti in un file a cui faccio riferimento in modo assoluto, e se i diritti sono effettivamente quelli di root, non dovrebbero esserci problemi a caricare il file.

sacarde
22-07-2010, 17:48
busybox e' altamente personalizzabile

per vedere i comandi inclusi :
Enter 'help' for a list of built-in commands



c'e' un chan su freenode: #uclib

consigliano di usare ~/.profile
(is a file in the users home directory)

p.s.
http://www.busybox.net/FAQ.html

lulerry
23-07-2010, 12:26
Ho risolto parzialmente. Il problema è legato ai permessi. Lo script è stato messo nella cartella /etc/profile.d/ e viene eseguito in modo automatico tutte le volte che un qualsiasi utente si collega (starà a me ora capire in che modo discernere chi si è collegato e quindi eseguire o meno lo script). Lo script, però, viene eseguito con i diritti dell'utente che si è collegato.
Se però eseguo il tutto con il sudo, ovviamente, mi viene chiesta la password per eseguire il codice, cosa che vorrei evitare.
Ora se vi fosse il modo di dire allo script di inserire da sé la password al sudo sarebbe straordinario, ma non saprei proprio come fare. Altro modo sarebbe capire quale delle librerie/periferiche che il programma usa e modificarne i diritti oppure aggiungere l'utente che al gruppo che ha diritto di usarla.
unico problema, quando creo l'utente con:

adduser -G video,audio utente

mi restituisce l'errore:

adduser: group video,audio does not exist

Come se vedesse la stringa "video,audio" come un unico gruppo. Ho provato a mettere uno spazio tra la virgola e la parola, a mettere il -G davanti a ciascun gruppo, ma senza risultato. Se metto lo spazio ovviamente mi cerca di creare due utenti, audio e utente.
Continuerò ad indagare, grazie dell'aiuto!

sacarde
23-07-2010, 13:02
hai provato se esegue anche il file ~/.profile ?



per l'user: http://www.cyberciti.biz/faq/howto-linux-add-user-to-group/

Loading