PDA

Visualizza la versione completa : /dev/ttyS0 appartiene a root


*Ray*
08-01-2005, 13:43
Ciao a tutti,

sto scrivendo un software che accede alla seriale e per fare il testing devo per forza fare su e lanciarlo come root visto che lanciandolo con il mio utente l'apertura della seriale fallisce.

Sono andato a dare un occhio in /dev/ e ho visto che tutti i file appartengono a root, e quindi il problema e' proprio questo.

Mi domandavo a questo punto cosa fare: il software e' di fatto un driver, quindi deve potere accedere direttamente alla porta seriale.

chmoddare /dev/ttySx e' fuori discussione anche perche' non so a priori a che porta seriale sara' attaccata la mia periferica.

Come faccio ad accedere direttamente a una porta seriale senza essere root e senza modificare i permessi di tutte le ttySx?

*Ray*
08-01-2005, 13:45
Forse devo impostare l'owner del driver (.lib) a root e allora anche se l'applicazione che usa il .lib non e' root i metodi della libreria vengono eseguiti con privilegi di root ?

Ikitt
08-01-2005, 13:55
Originariamente inviato da *Ray*
Sono andato a dare un occhio in /dev/ e ho visto che tutti i file appartengono a root, e quindi il problema e' proprio questo.
Non proprio, direi.
Che i device appartengano a root/root (o a root/gruppoapposito) e` la norma sotto *nix, ed e` giusto cosi`. Il problema, piuttosto, e` che l'utente che lancia il programma non dispone dei privilegi per accedere il device.
La soluzione classica e` aggiungere l'utente all'apposito gruppo (p.es. dialout in debian) o cambiare i permessi.


Mi domandavo a questo punto cosa fare: il software e' di fatto un driver, quindi deve potere accedere direttamente alla porta seriale.
driver kernel space o user space?


chmoddare /dev/ttySx e' fuori discussione anche perche' non so a priori a che porta seriale sara' attaccata la mia periferica.
Invece direi che e` la soluzione migliore :)
O il tuo software ha bisogno dei privilegi di root, e allora c'e` poco da fare, oppure la via e` modificare i permessi del device.


Come faccio ad accedere direttamente a una porta seriale senza essere root e senza modificare i permessi di tutte le ttySx?
O scrivi un modulo kernel o non puoi :)

Ikitt
08-01-2005, 13:56
Originariamente inviato da *Ray*
Forse devo impostare l'owner del driver (.lib) a root e allora anche se l'applicazione che usa il .lib non e' root i metodi della libreria vengono eseguiti con privilegi di root ?
No, non funziona cosi`.
La libreria puo` avere qualunque permesso, owner etc. etc., quel che decide sono le caratteristiche del binario ad essa collegato. Es: binario suid root, o lanciato da root...

Comunque ribadisco che secondo me e` una cattiva strada.

*Ray*
08-01-2005, 14:17
Ci penso 2 secondi prima di scrivere cavolate va' :]

Loading