Oui, vous pouvez écrire une règle udev.
Pour /etc/udev/rules.d
créer un fichier 30-mydevice.rules
(le nombre doit être compris entre 0 et 99 et ne décide que de l'ordre d'exécution du script; le nom n'a pas vraiment d'importance, il doit simplement être descriptif; l' .rules
extension est cependant requise)
Dans cet exemple, je suppose que votre appareil est basé sur USB et que vous savez que son ID de fournisseur et de produit (peut être vérifié à l'aide lsusb -v
), et que vous utilisez un mydevice
groupe auquel votre utilisateur doit appartenir pour utiliser l'appareil. Cela devrait être le contenu du fichier dans ce cas:
SUBSYSTEM=="usb", SYSFS{idVendor}=="0123", SYSFS{idProduct}=="4567", ACTION=="add", GROUP="mydevice", MODE="0664"
MODE
égal à 0664 permet à l'appareil d'être écrit par son propriétaire (probablement root) et le groupe défini.
30
dans le nom du fichier?Une façon consiste à ajouter l'utilisateur au "groupe de périphériques" correspondant. Il existe toute une gamme de groupes pour différents types de périphériques (disque, disquette, tty, vidéo, cdrom, ...) sous Linux, vous pouvez donc ajouter l'utilisateur au groupe correspondant dans / etc / group.
Une autre façon est de créer un "pseudo-utilisateur" (par exemple, l'utilisateur des jeux). Vous ajoutez cet utilisateur aux groupes de périphériques qu'il devrait avoir. Enfin, vous changez le propriétaire de certains programmes (comme un programme de numérisation d'images) en cet utilisateur, et définissez "chmod u + s". Cela entraînera l'exécution du programme en tant que pseudo-utilisateur - et non en tant qu'utilisateur réel, ayant ainsi accès aux périphériques. Vous pouvez utiliser le groupe de programmes pour limiter quel utilisateur peut exécuter le programme.
Enfin, vous pouvez définir le groupe de programmes nécessitant un périphérique spécifique sur le groupe de périphériques et définir "chmod g + s". Cela entraînera l'exécution du programme avec les droits du groupe (en plus du droit de l'utilisateur normal qui l'exécute), permettant ainsi un accès étendu à l'appareil.
la source
Oui, vous le pouvez, mais vous devez d'abord avoir l'autorisation root. Depuis linux 2.2, il a des capacités, utilisez-le avec des autorisations root divisées. Avec sous la liste, vous pouvez utiliser:
setcap cap_net_raw,cap_net_admin=eip xxxx
xxxx est n'importe quel programme exécutable, vous pouvez appeler libpcap avec vous-même.
la source