Lesen / Schreiben auf eine serielle Schnittstelle ohne Root?
On Februar 12, 2021 by adminIch schreibe eine Anwendung zum Lesen / Schreiben an / von einer seriellen Schnittstelle in Fedora14, und sie funktioniert hervorragend, wenn ich sie als Root ausführe. Aber wann Ich führe es als normaler Benutzer aus. Ich kann nicht die erforderlichen Berechtigungen für den Zugriff auf das Gerät erhalten (/ dev / ttySx). Das ist beschissen, weil ich das verdammte Ding jetzt nicht mit Eclipse debuggen kann.
Ich habe versucht, Eclipse mit sudo auszuführen, aber es beschädigt meinen Arbeitsbereich und ich kann das Projekt nicht einmal öffnen. Daher möchte ich wissen, ob es möglich ist, die Zugriffsanforderungen für das Schreiben in / dev / ttySx zu senken, damit jeder normale Benutzer darauf zugreifen kann. Ist dies möglich?
Antwort
Das Recht auf Zugriff auf eine serielle Schnittstelle wird durch die Berechtigungen der Gerätedatei bestimmt (z. B. /dev/ttyS0
). 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 (wenn Fedora es unterstützt, was ich denke, dass es das tut) dafür zu sorgen, dass das Gerät Ihnen gehört gehören zu dem Benutzer, der an der Konsole angemeldet ist.
Auf meinem System (nicht Fedora) gehört /dev/ttyS0
dem Benutzer root
und die Gruppe dialout
Um auf das serielle Gerät zugreifen zu können, würde ich mich der dialout
Gruppe:
usermod -a -G dialout MY_USER_NAME
Kommentare
- I ' Ich werde diesen akzeptieren, da er mich auf den richtigen Weg gebracht hat. Für Fedora wird der Befehl usermod verwendet, nachdem ein Benutzer erstellt wurde. Die betreffende Gruppe war auch für mich ein Dialout: sudo usermod -a -G dialout < Benutzername >. Prost.
- Beachten Sie, dass Sie sich möglicherweise abmelden und anmelden müssen, um angezeigt zu werden die neue Gruppe
- Auf vielfachen Wunsch:
sudo usermod -a -G dialout $USER
🙂
Antwort
Viele Distributionen verwenden Gruppenmitgliedschaften, um den Zugriff auf serielle Schnittstellen zu ermöglichen. Ich kenne jedoch keine Details für Fedora auf Anhieb.
Antwort
Ich denke, Sie können sich selbst in die Sudoers-Datei einfügen, die dies tun wird Mit dieser Option können Sie eine Reihe von Befehlen als Befehlsalias angeben, die Sie ohne Kennwort ausführen können. Ein hervorragendes Tutorial zur sudoers-Datei finden Sie in Ubuntu-Dokumenten .
Sie können Eclipse dann normal ausführen und diese spezifischen Befehle ohne Root-Berechtigungen ausführen.
Antwort
Dies ist eine alte Frage, aber ich glaube, ich kann einen Beitrag leisten, da ich einen zusätzlichen Schritt zur Lösung meines Problems machen musste. Ich bin auf diese Frage gekommen, als ich versucht habe, mit Debian 10 eine Verbindung zu einem micro: bit an Port / dev / ttyACM0 herzustellen.
ls -al /dev/ttyACM0
zeigt an:
crw-rw-rw- 1 root dialout 166, 0 Jan 5 16:13 /dev/ttyACM0
Dies zeigt an, warum wir mit sudo auf den Port zugreifen können – er gehört root. Es wird auch gezeigt, warum das Hinzufügen des Nicht-Root-Benutzers zur Dialout-Gruppe den Zugriff ohne Root ermöglicht. Ich habe mein Benutzerkonto der Einwahlgruppe in / etc / group hinzugefügt, indem ich Folgendes verwendet habe:
sudo usermod -a -G dialout <user>
Ich konnte immer noch keine Verbindung mit dem Mikrobit herstellen Verwenden eines Serial-Port-Monitors ohne Root.
Das micro: bit wird unter / media:
ls -al /media/<user> drwxr-x---+ 2 root root 4096 Jan 5 12:44 <user>
bereitgestellt. Dies zeigt, dass das Verzeichnis dass das micro: bit gemountet ist, gehört root. Ich musste den Besitzer und die Gruppe dieses Verzeichnisses ändern in:
„“ „sudo chowner / media / sudo chgrp / media /“ „“
Jetzt kann ich eine Verbindung zum Mikro herstellen : Bit mit einem seriellen Port-Monitor ohne Verwendung von Sudo.
Antwort
Ich hatte dieses Problem auch damals, abgesehen von Wenn Sie einen Benutzer zu einer Dialout -Gruppe 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 dieselbe Berechtigung.
Das Problem ist, dass Sie dies bei jedem Neustart tun müssen Ihr Computer oder stecken Sie Ihr Gerät ein und aus huh !!!
Kommentare
-
chmod -R 777 /dev
ist a Sehr schlechte Idee. - Yaah stimmt zu, wenn es einen anderen Vorschlag dafür gibt, wird das großartig sein.
- Ich frage mich, ob Sie sich abmelden und wieder anmelden mussten, wie in der Kommentar zur akzeptierten Antwort? Dies führt häufig zu Stolpern.
- Es ist äußerst unsicher, allen Benutzern freien Zugriff auf alles in / dev / zu gewähren. Bitte tun Sie dies nicht '.
Schreibe einen Kommentar