Berechtigungen für / dev-Einträge

7

Ich warte auf meinen Pi. Durch das Lesen der Tutorials und Bücher über das Ausführen von I / O auf dem Pi habe ich den Eindruck, dass Linux im laufenden Betrieb Einträge in / dev vornimmt, was nett ist, aber sie gehören jemand anderem als dem Pi-Benutzer. Gibt es eine Möglichkeit, dass Linux die / dev-Einträge weltweit beschreibbar macht oder pi gehört?

Lumpynose
quelle
Sie sollten klarstellen, welchen Zweck Sie haben, damit der pi-Benutzer Schreibberechtigung für Entwicklungsknoten hat. Andernfalls liest sich dies wie etwas, das jemand sagen könnte, wenn er nur Linux lernt, aber nicht wirklich versteht, worum es bei einem Entwicklungsknoten geht. Zur Verdeutlichung: Es kann einen legitimen Grund dafür geben, aber im Allgemeinen gibt es keinen . Entweder benötigen Sie eine Antwort, die erklärt, warum dies nicht der Fall ist, oder eine Antwort, die erklärt, wie Sie das tun, was Sie wollen (aber dafür) Sie müssen erklären, was Sie tun möchten. Sparen Sie also allen etwas Zeit, "das habe ich nicht so gemeint" usw., und klären Sie dies .
Goldlöckchen
Entschuldigung, ich dachte, es wäre selbstverständlich; Alle Programmierbeispiele, die E / A mit den Pins ausführen, werden mit sudo ausgeführt. Ich würde sie lieber als pi-Benutzer ausführen und nicht als root.
Lumpynose
Okay. Ich habe dann eine Antwort hinzugefügt;)
Goldlöckchen

Antworten:

11

Sie können die Berechtigungen für einen Geräteknoten ändern, indem Sie chmodz.

chmod g+rw /dev/whatever

Dies fügt Lese- / Schreibberechtigungen für die Gruppe hinzu, die "was auch immer" besitzt. Viele Dinge in / dev sind uid und gid 0 (Eigentümerstamm, Gruppenstamm), aber einige Dinge haben eine separate Gruppe wie 'Video' oder 'Festplatte', und wenn dies der Fall ist, hat die Gruppe bereits Lese- und Schreibzugriff Berechtigungen für den Knoten. Überprüfen Sie also zunächst, ob der Knoten, an dem Sie interessiert sind, folgendermaßen aussieht:

stat -c "%A %G" /dev/whatever

Wenn ja, fügen Sie einfach den pi-Benutzer zu dieser Gruppe hinzu. Wenn die Gruppe "mydevice" heißt:

usermod -a -G mydevice pi

Erledigt. Wenn der Knoten keiner speziellen Gruppe angehört, können Sie eine erstellen:

addgroup mydevice

Hinweis zu einigen Distributionen ist dieser Befehl groupadd. Ordnen Sie nun das Gerät dieser Gruppe zu und optimieren Sie die Berechtigungen:

chown root.mydevice /dev/whatever
chmod g+rw /dev/whatever

Fügen Sie dann den pi-Benutzer zur Gruppe hinzu. Die neue Gruppe und die Mitgliedschaft des pi-Benutzers sind permanent (bis Sie sie erneut ändern). Die Entwicklungsknoten werden jedoch tatsächlich beim Booten erstellt, sodass alle Änderungen, die Sie an ihnen vornehmen, nicht beibehalten werden. Sie können dies dauerhaft machen, indem Sie eine udev-Regel hinzufügen . Erstellen Sie eine Textdatei /etc/udev/rules.dmit dem Namen mydevice.rules (oder etwas mit dem Suffix .rules) und fügen Sie eine Regel hinzu:

KERNEL=="whatever", NAME="%k", GROUP="mydevice", MODE="0660"

Beachten Sie den Unterschied zwischen == und = dort. Hier ist eine (leicht gealterte) Anleitung zu udev-Regeln , von denen die meisten noch gültig zu sein scheinen.

Goldlöckchen
quelle
Großartig, danke. Udev-Regeln klingen für mich nach einer Lösung.
Lumpynose
1
Genial! Für andere, die stolpern, ist der Befehl möglicherweise etwas anderes, um eine Gruppe hinzuzufügen. Für Arch Linux stellte sich heraus, dass es sich um Groupadd handelte . Überprüfen Sie einfach Ihre Distribution-Dokumente.
Hendy
0

In der neuesten Jessie der Gruppe , dass die Bedürfnisse der Nutzer Teil ist zu gpio, so sudo usermod -a -G gpio <user name>hat die Magie für mich.

Adarsha
quelle