Ja, Sie können eine udev-Regel schreiben.
In /etc/udev/rules.d
Erstellen Sie eine Datei 30-mydevice.rules
(Zahl muss zwischen 0 und 99 liegen und entscheidet nur über die Ausführungsreihenfolge des Skripts; Name spielt keine Rolle, er muss nur beschreibend sein; .rules
Erweiterung ist jedoch erforderlich)
In diesem Beispiel gehe ich davon aus, dass Ihr Gerät USB-basiert ist und Sie dessen Hersteller- und Produkt-ID kennen (kann mit lsusb -v
überprüft werden ) und Sie verwenden mydevice
Gruppe, der Ihr Benutzer angehören muss, um das Gerät verwenden zu können. Dies sollte in diesem Fall der Dateiinhalt sein:
SUBSYSTEM=="usb", SYSFS{idVendor}=="0123", SYSFS{idProduct}=="4567", ACTION=="add", GROUP="mydevice", MODE="0664"
MODE
gleich 0664 erlaubt es dem Besitzer (wahrscheinlich root) und der definierten Gruppe, auf das Gerät zu schreiben.
Eine Möglichkeit besteht darin, den Benutzer der entsprechenden "Gerätegruppe" hinzuzufügen. Unter Linux gibt es eine ganze Reihe von Gruppen für verschiedene Arten von Geräten (Festplatte, Diskette, tty, Video, CD-ROM, ...), sodass Sie den Benutzer in /etc/group
zu der entsprechenden Gruppe hinzufügen können .
Eine andere Möglichkeit besteht darin, einen "Pseudo-Benutzer" (z. B. den Spiele-Benutzer) zu erstellen. Sie fügen diesen Benutzer den Gerätegruppen hinzu, die er haben sollte. Abschließend ändern Sie den Eigentümer bestimmter Programme (zB eines Programms zum Scannen von Bildern) auf diesen Benutzer und setzen chmod u+s
. Dadurch wird das Programm als Pseudobenutzer ausgeführt – nicht als echter Benutzer, und hat somit Zugriff auf die Geräte. Sie können die Gruppe der Programme verwenden, um einzuschränken, welcher Benutzer das Programm ausführen darf.
Schließlich können Sie die Gruppe der Programme, die ein bestimmtes Gerät benötigen, auf die Gerätegruppe setzen und chmod g+s
einstellen . Dadurch wird das Programm mit den Rechten der Gruppe ausgeführt (zusätzlich zu den Rechten des normalen Benutzers, der es ausführt), wodurch ein erweiterter Zugriff auf das Gerät ermöglicht wird.