Leggere / scrivere su una porta seriale senza root?


31

Sto scrivendo un'applicazione per leggere / scrivere su / da una porta seriale in Fedora14, e funziona benissimo quando lo eseguo come root. Ma quando lo eseguo come un normale utente non riesco a ottenere i privilegi richiesti per accedere al dispositivo (/ dev / ttySx). È un po 'schifoso perché ora non riesco davvero a eseguire il debug della dannata cosa usando Eclipse.

Ho provato a eseguire Eclipse con sudo, ma corrompe il mio spazio di lavoro e non riesco nemmeno ad aprire il progetto. Quindi vorrei sapere se è possibile ridurre i requisiti di accesso per scrivere su / dev / ttySx in modo che qualsiasi utente normale possa accedervi. È possibile?

Risposte:


46

Il diritto di accedere a una porta seriale è determinato dalle autorizzazioni del file del dispositivo (ad es /dev/ttyS0.). Quindi tutto ciò che devi fare è disporre che il dispositivo sia di tua proprietà o (meglio) inserirti nel gruppo proprietario del dispositivo o (se Fedora lo supporta, cosa che penso lo faccia) organizzare che il dispositivo appartengono all'utente che ha effettuato l'accesso sulla console.

Ad esempio, sul mio sistema (non su Fedora), /dev/ttyS0è di proprietà dell'utente roote del gruppo dialout, quindi per poter accedere al dispositivo seriale, mi aggiungerei al dialoutgruppo:

usermod -a -G dialout MY_USER_NAME

1
Accetterò questo perché mi ha portato sulla strada giusta. Per Fedora, il comando usermod viene utilizzato dopo la creazione di un utente. Anche il gruppo in questione è stato dialout per me: sudo usermod -a -G dialout <nomeutente>. Saluti.
iegod,

5
Potrebbe essere necessario disconnettersi e accedere per apparire nel nuovo gruppo
Jan Špaček,

1
A grande richiesta: sudo usermod -a -G dialout $USER:-)
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

0

Molte distribuzioni utilizzano le appartenenze ai gruppi per consentire l'accesso alle porte seriali. Tuttavia, non conosco i dettagli per Fedora.


0

Penso che tu possa aggiungerti nel file sudoers che ti permetterà di specificare un set di comandi come alias di comando che saresti in grado di eseguire senza password. Puoi trovare un eccellente tutorial sul file sudoers nei documenti di Ubuntu .

È quindi possibile eseguire eclipse normalmente e sarebbe in grado di eseguire quei comandi specifici senza i permessi di root.


-2

ho avuto questo problema anche nel corso della giornata, a parte l'aggiunta di un utente a un gruppo di dialout , è necessario anche autorizzare tale utente ad accedere / sviluppare. semplicemente su -> inserisci la password di root -> chmod -R 777 / dev -R, significa modalità ricorsiva, tutto all'interno di quella cartella avrà la stessa autorizzazione

il problema è questo, è necessario farlo ogni volta che si riavvia il computer o si collega e si esce dal dispositivo eh !!!


3
chmod -R 777 /devè una pessima idea.
RalfFriedl,

Yaah è d'accordo, se ci sono altri suggerimenti per questo, sarà fantastico
Tunu Yolim Ngajilo,

Mi chiedo se è necessario disconnettersi e riconnettersi, come nel commento sulla risposta accettata? Questo spesso fa inciampare le persone.
sourcejedi,

Dare accesso gratuito a tutti gli utenti a tutto ciò che è all'interno di / dev / è estremamente pericoloso. Per favore, non farlo.
unfa
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.