Konfigurieren Sie die Berechtigungen für / dev / ttyUSB0

4

Ich versuche mit einem Arduino von Ubuntu 12.04 zu kommunizieren. Beim Einstecken des USB-Kabels erscheint der serielle Port des Arduino als / dev / ttyUSB0. Wenn ich versuche, mit moserial eine Verbindung herzustellen , wird der Fehler "Gerät / dev / ttyUSB0 konnte nicht geöffnet werden" angezeigt, nicht jedoch, wenn ich moserial mit sudo starte . Was muss ich konfigurieren, um das serielle Gerät als normaler Benutzer ohne Rootberechtigung zugänglich zu machen?

Mike L.
quelle

Antworten:

4

Sie haben mehrere Möglichkeiten:

Automatische ACL-Zuweisung

Höchstwahrscheinlich wird systemd-logind oder ConsoleKit in Ubuntu ausgeführt, wodurch ACLs auf Geräteknoten automatisch konfiguriert werden können, basierend darauf, welches Benutzerkonto aktuell an der Konsole angemeldet ist. Diese ACLs gewähren zusätzlich zu den üblichen Berechtigungen Zugriff und können mit angezeigt werden getfacl.

Fügen Sie dazu zu /etc/udev/rules.d/60-extra-acl.rules1 Folgendes hinzu :

KERNEL=="ttyUSB[0-9]*", TAG+="udev-acl", TAG+="uaccess"

( 1 Ja, erstellen Sie die Datei. Sie ist standardmäßig nicht vorhanden. Das gesamte Verzeichnis ist für Administratoranpassungen vorgesehen.)

Gruppenbasierter Zugriff

Die tty-Geräte können in der Regel von einer bestimmten Gruppe wie "Dialout" oder "UUCP" gelesen / geschrieben werden. Fügen Sie sich dieser Gruppe hinzu, um Zugriff auf alle seriellen Schnittstellen zu erhalten:

# gpasswd -a YourUsername dialout

Vergessen Sie nicht, sich abzumelden und erneut anzumelden, damit die Gruppenänderungen übernommen werden.

Berechtigungs- oder Eigentumsänderungen

udev-Regeln ähnlich wie oben können auch verwendet werden, um den "Haupt" -Eigentümer und die Gruppe sowie die Berechtigungen festzulegen (so wurde die Standardgruppe an erster Stelle festgelegt). Zum Beispiel:

     KERNEL=="ttyUSB[0-9]*", OWNER="YourUsername"
or:  KERNEL=="ttyUSB[0-9]*", GROUP="users", MODE="0660"
or:  KERNEL=="ttyUSB[0-9]*", MODE="0666"

Sie können den Parametern OWNER, GROUP und MODE zuweisen.

Temporäre manuelle Änderung

Um eine einmalige Änderung vorzunehmen, verwenden Sie einfach chmodund / oder chownwie gewohnt.

     # chown YourUsername /dev/ttyUSB0
or:  # chmod a+rw /dev/ttyUSB0
Grawity
quelle
Update 2019: Anscheinend enthielt die ursprüngliche udev-Regel einen Syntaxfehler, und niemand bemerkte ihn in den letzten 7 Jahren, nicht einmal die Leute, die ihn hochgestuft haben ...
grawity