it-swarm-fr.com

Lire / écrire sur un port série sans racine?

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. Je voudrais 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?

34
iegod

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/ttyS0 appartient à l'utilisateur root et au groupe dialout, donc pour pouvoir accéder au périphérique série, je voudrais m'ajouter au groupe dialout:

usermod -a -G dialout MY_USER_NAME

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.

0
geekosaur

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 documentation Ubunt .

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

0
Deepak Mittal