Lesen / Schreiben an einen seriellen Port ohne Root?


31

Ich schreibe eine Anwendung zum Lesen / Schreiben von / zu einer seriellen Schnittstelle in Fedora14 und sie funktioniert hervorragend, wenn ich sie als root ausführe. Wenn ich es jedoch als normaler Benutzer ausführe, kann ich nicht die Berechtigungen erhalten, die für den Zugriff auf das Gerät erforderlich sind (/ dev / ttySx). Das ist irgendwie beschissen, denn jetzt kann ich das verdammte Ding nicht wirklich mit Eclipse debuggen.

Ich habe versucht, Eclipse mit sudo auszuführen, aber es beschädigt meinen Arbeitsbereich und ich kann das Projekt nicht einmal öffnen. Ich würde gerne wissen, ob es möglich ist, die Zugriffsanforderungen für das Schreiben in / dev / ttySx zu verringern, damit jeder normale Benutzer darauf zugreifen kann. Ist das möglich?

Antworten:


46

Das Recht, auf eine serielle Schnittstelle zuzugreifen, richtet sich nach den Berechtigungen der Gerätedatei (z /dev/ttyS0. B. ). Alles, was Sie tun müssen, ist, entweder dafür zu sorgen, dass das Gerät Ihnen gehört, oder sich (besser) in die Gruppe zu versetzen, der das Gerät gehört, oder (falls Fedora es unterstützt, was meiner Meinung nach auch so ist), dass das Gerät Ihnen gehört gehören zu dem Benutzer, der an der Konsole angemeldet ist.

Beispiel: Auf meinem System (nicht Fedora) /dev/ttyS0gehören der Benutzer rootund die Gruppe. dialoutUm auf das serielle Gerät zugreifen zu können, würde ich mich der dialoutGruppe hinzufügen :

usermod -a -G dialout MY_USER_NAME

1
Ich werde dieses akzeptieren, da es mich auf den richtigen Weg gebracht hat. Für Fedora wird der Befehl usermod verwendet, nachdem ein Benutzer erstellt wurde. Die betreffende Gruppe war für mich auch ein Dialout: sudo usermod -a -G dialout <Benutzername>. Prost.
Dienstag,

5
Beachten Sie, dass Sie sich möglicherweise abmelden und anmelden müssen, um in der neuen Gruppe zu erscheinen
Jan Špaček

1
Auf sudo usermod -a -G dialout $USER
vielfachen

0

Viele Distributionen verwenden Gruppenmitgliedschaften, um den Zugriff auf serielle Ports zu ermöglichen. Für Fedora sind mir jedoch keine Details bekannt.


0

Ich denke, Sie können sich in die sudoers-Datei einfügen, mit der Sie eine Reihe von Befehlen als Befehls-Alias ​​angeben können, die Sie ohne Passwort ausführen könnten. Sie finden ein ausgezeichnetes Tutorial über sudoers-Dateien in Ubuntu-Dokumenten .

Sie können Eclipse dann normal ausführen und diese spezifischen Befehle ohne Root-Berechtigungen ausführen.


-2

Ich hatte dieses Problem auch damals, abgesehen davon, dass Sie Benutzer zu einer Einwählgruppe hinzufügen, müssen Sie diesem Benutzer auch die Berechtigung zum Zugriff auf / dev erteilen. einfach su -> root-Passwort eingeben -> chmod -R 777 / dev -R, bedeutet rekursiver Modus, alles in diesem Ordner hat die gleiche Berechtigung

Das Problem ist, dass Sie dies jedes Mal tun müssen, wenn Sie Ihren Computer neu starten oder Ihr Gerät ein- und ausstecken, nicht wahr !!!


3
chmod -R 777 /devist eine sehr schlechte Idee.
RalfFriedl

Ja, ich bin einverstanden, wenn es dafür einen anderen Vorschlag gibt, dann ist das großartig
Tunu Yolim Ngajilo,

Ich frage mich, ob Sie sich abmelden und wieder anmelden mussten, wie im Kommentar zur akzeptierten Antwort? Dies stolpert oft Menschen.
Sourcejedi

Allen Benutzern freien Zugriff auf alles in / dev / zu gewähren, ist äußerst unsicher. Bitte tu das nicht.
4.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.