Lecture / écriture sur un port série sans racine?

31

J'écris une application pour lire / écrire vers / depuis un port série dans Fedora14, et cela fonctionne très bien lorsque je l'exécute en tant que root. Mais lorsque je l'exécute en tant qu'utilisateur normal, je ne parviens pas à obtenir les privilèges requis pour accéder à l'appareil (/ dev / ttySx). C'est un peu merdique parce que maintenant je ne peux plus vraiment déboguer la putain de chose en utilisant Eclipse.

J'ai essayé d'exécuter Eclipse avec sudo mais cela corrompt mon espace de travail et je ne peux même pas ouvrir le projet. J'aimerais donc savoir s'il est possible de réduire les exigences d'accès pour écrire dans / dev / ttySx afin que tout utilisateur normal puisse y accéder. Est-ce possible?

iegod
la source

Réponses:

46

Le droit d'accéder à un port série est déterminé par les autorisations du fichier de périphérique (par exemple /dev/ttyS0). Donc, tout ce que vous devez faire est soit de faire en sorte que l'appareil vous appartienne, soit (mieux) de vous mettre dans le groupe qui possède l'appareil, ou (si Fedora le prend en charge, ce que je pense qu'il fait) de faire en sorte que l'appareil soit appartiennent à l'utilisateur qui s'est connecté sur la console.

Par exemple, sur mon système (pas Fedora), /dev/ttyS0appartient à l'utilisateur rootet au groupe dialout, donc pour pouvoir accéder au périphérique série, je m'ajouterais au dialoutgroupe:

usermod -a -G dialout MY_USER_NAME
Gilles, arrête de faire le mal
la source
1
Je vais accepter celui-ci car il m'a mis sur la bonne voie. Pour Fedora, la commande usermod est utilisée après la création d'un utilisateur. Le groupe en question était également composé pour moi: sudo usermod -a -G dialout <username>. À votre santé.
iegod
5
Notez que vous devrez peut-être vous déconnecter et vous connecter pour apparaître dans le nouveau groupe
Jan Špaček
1
À la demande: sudo usermod -a -G dialout $USER:-)
Ciro Santilli新疆改造中心法轮功六四事件
0

De nombreuses distributions utilisent des appartenances à des groupes pour permettre l'accès aux ports série. Je ne connais cependant pas les détails de Fedora.

geekosaur
la source
0

Je pense que vous pouvez vous ajouter dans le fichier sudoers qui vous permettra de spécifier un ensemble de commandes comme alias de commande que vous pourrez exécuter sans mot de passe. Vous pouvez trouver un excellent tutoriel sur le fichier sudoers dans les documents Ubuntu .

Vous pouvez ensuite exécuter eclipse normalement et il serait capable d'exécuter ces commandes spécifiques sans autorisations root.

Deepak Mittal
la source
-2

J'ai eu ce problème également dans la journée, en plus d'ajouter l'utilisateur à un groupe de numérotation , vous devez également donner la permission à cet utilisateur d'accéder à / dev. simplement su -> entrez le mot de passe root -> chmod -R 777 / dev -R, signifie mode récursif, tout dans ce dossier aura la même autorisation

le problème est le suivant, vous devez le faire à chaque fois que vous redémarrez votre ordinateur ou branchez et débranchez votre appareil hein !!!

Tunu Yolim Ngajilo
la source
3
chmod -R 777 /devest une très mauvaise idée.
RalfFriedl
Yaah d'accord, s'il y a une autre suggestion pour cela, ce sera génial
Tunu Yolim Ngajilo
Je me demande si vous aviez besoin de vous déconnecter puis de vous reconnecter, comme dans le commentaire sur la réponse acceptée? Cela fait souvent trébucher les gens.
sourcejedi
Il est extrêmement dangereux de donner un accès gratuit à tous les utilisateurs à tout ce qui se trouve dans / dev /. Veuillez ne pas faire ça.
ENUP