J'ai un système Ubuntu 11.10 avec 2 utilisateurs:
Maintenant, le problème est que lorsque la seconde tente d'utiliser un périphérique ttyUSB0
, l'erreur suivante est renvoyée:
"Could not open serial port /dev/ttyUSB0"
J'ai pu le réparer en utilisant:
Sudo chown :second_user /dev/ttyUSB0
Cependant, lorsque je déconnecte l'appareil et le reconnecte, le problème se reproduit.
Est-il possible d'autoriser différents utilisateurs à accéder aux appareils? Je suppose que je dois ajouter l'utilisateur à un groupe spécifique. Actuellement, le propriétaire est root
et le groupe est dialout
. Cependant, je ne suis pas sûr du groupe et je ne sais pas comment ajouter l'utilisateur.
Merci!
Comme vous l'avez remarqué, le périphérique /dev/ttyUSB0
possède le groupe dialout
name__. Tout ce que vous avez à faire est d’ajouter le second utilisateur au groupe dialout
name__:
Sudo adduser second_user dialout
second_user devra se déconnecter et se reconnecter pour que cela prenne effet.
Le moyen le plus simple:
sudoedit /etc/udev/rules.d/50-myusb.rules
Enregistrez ce texte:
KERNEL=="ttyUSB[0-9]*",MODE="0666"
KERNEL=="ttyACM[0-9]*",MODE="0666"
Débranchez le périphérique et rebranchez-le, et il devrait être en lecture/écriture à partir de n'importe quel utilisateur!
Vous pouvez utiliser UDEV. C'est un système qui se déclenche à chaque fois que vous branchez ou débranchez un périphérique (entre autres choses). Cela permet d’écrire diverses choses, y compris la définition des autorisations.
Exécutez sudoedit /etc/udev/rules.d/50-ttyusb.rules
et collez ceci ici:
KERNEL=="ttyUSB[0-9]*",NAME="tts/USB%n",SYMLINK+="%k",GROUP="uucp",MODE="0666"
Sauvegardez, quittez et rebranchez et vous devriez être opérationnel. Définir l'autorisation sur 666 permet à quiconque d'écrire sur le périphérique.
Je base ceci off cette page qui date d'il y a quelques années, mais quelque chose comme cela devrait fonctionner si Jeremy's solution ne fonctionne pas.
Fantastique - la solution UDEV donnée ici était le ticket qui me convenait.
J'ai installé le programme CS-F3020_F5010_F5020 d'Icom via Wine, j'ai créé le lien pour le port Com comme suit:
ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com1 but nothing.
Ensuite, j'ai réalisé que je devais changer les autorisations sur/dev/ttyUSB0 pour me permettre d'y accéder. Cela fonctionne très bien jusqu'à ce que vous débranchiez/rebranchez la clé USB, puis vous devez modifier à nouveau les autorisations.
J'ai essayé d'ajouter mon utilisateur au groupe de numérotation, mais cela n'a pas résolu le problème pour une raison quelconque.
Utiliser UDEV résout la dernière pièce du puzzle. Maintenant, je peux programmer ma radio Icom sous Linux, brancher et débrancher le périphérique USB/série sans plus de tracas. Woohoo. Merci.
Les règles udev fonctionnent, mais elles ont, comme elles ont été écrites, le très mauvais effet secondaire de rendre tous les périphériques ttyUSB*
accessibles à tous. Ce n'est pas bon car cela peut constituer un risque pour la sécurité en fonction des éléments présents sur le système.
Utilisez plutôt une règle udev plus sélective. Par exemple, j'ai un périphérique USB qui gère un ensemble de commutateurs. Lorsque dmesg est branché, je peux voir l’ID du fabricant et le code du produit (plus, même, dans ce cas, un numéro de série pour l’appareil). Je peux ajouter:
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001"
aux lignes du noyau ci-dessus et la règle ne s’appliquera qu’à ce périphérique. Mieux encore, plutôt que d’affecter à la variable MODE
, définissez également le groupe:
GROUP="whatever", MODE="0660"
alors seules les personnes du groupe 'whatever
' auront un accès en écriture.
John Bowler