Ja, Sie können eine udev-Regel schreiben.
In /etc/udev/rules.d
make a file 30-mydevice.rules
(Nummer muss zwischen 0 und 99 liegen und entscheidet nur über die Ausführungsreihenfolge des Skripts; Name spielt keine Rolle, 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 wissen, dass es sich um einen Anbieter und eine Produkt-ID handelt (die mit überprüft werden kann lsusb -v
), und dass Sie eine mydevice
Gruppe verwenden, in der sich Ihr Benutzer befinden muss, um das Gerät zu verwenden. Dies sollte in diesem Fall der Inhalt der Datei sein:
SUBSYSTEM=="usb", SYSFS{idVendor}=="0123", SYSFS{idProduct}=="4567", ACTION=="add", GROUP="mydevice", MODE="0664"
MODE
gleich 0664 erlaubt es dem Gerät, von seinem Besitzer (wahrscheinlich root) und der definierten Gruppe beschrieben zu werden.
30
im Dateinamen?Eine Möglichkeit besteht darin, den Benutzer der entsprechenden "Devivce-Gruppe" hinzuzufügen. Unter Linux gibt es eine ganze Reihe von Gruppen für verschiedene Arten von Geräten (Diskette, Diskette, Tty, Video, CD-ROM, ...), sodass Sie den Benutzer der entsprechenden Gruppe in / etc / group hinzufügen können.
Ein anderer Weg ist, einen "Pseudo-Benutzer" (zB den Spielbenutzer) zu machen. Sie fügen diesen Benutzer zu den Gerätegruppen hinzu, die er haben soll. Schließlich ändern Sie den Eigentümer bestimmter Programme (z. B. eines Programms zum Scannen von Bildern) in diesen Benutzer und legen "chmod u + s" fest. Dies führt dazu, dass das Programm als Pseudo-Benutzer ausgeführt wird - nicht als echter Benutzer und somit Zugriff auf die Geräte hat. Sie können die Gruppe der Programme verwenden, um zu begrenzen, welcher Benutzer das Programm ausführen darf.
Schließlich können Sie die Gruppe von Programmen, die ein bestimmtes Gerät benötigen, auf die Gerätegruppe einstellen und "chmod g + s" einstellen. Dadurch wird das Programm mit den Rechten der Gruppe ausgeführt (zusätzlich zu dem Recht des normalen Benutzers, der es ausführt), wodurch ein erweiterter Zugriff auf das Gerät ermöglicht wird.
quelle
Ja, Sie können, aber Sie benötigen zunächst die Root-Berechtigung. Seit Linux 2.2 verfügt es über Funktionen. Verwenden Sie geteilte Root-Berechtigungen. Mit unter der Liste können Sie Folgendes verwenden:
setcap cap_net_raw,cap_net_admin=eip xxxx
xxxx ist jedes ausführbare Programm, Sie können libpcap mit sich selbst aufrufen.
quelle