Да, вы можете написать правило udev.
В /etc/udev/rules.d
make file 30-mydevice.rules
(число должно быть от 0 до 99 и определяется только порядком выполнения скрипта; имя на самом деле не имеет значения, оно просто должно быть описательным; .rules
хотя расширение необходимо)
В этом примере я предполагаю, что ваше устройство основано на USB, и вы знаете, что это идентификатор производителя и продукта (это можно проверить с помощью lsusb -v
), и вы используете mydevice
группу, в которую должен войти ваш пользователь, чтобы использовать устройство. Это должно быть содержимое файла в этом случае:
SUBSYSTEM=="usb", SYSFS{idVendor}=="0123", SYSFS{idProduct}=="4567", ACTION=="add", GROUP="mydevice", MODE="0664"
MODE
равный 0664 позволяет устройству быть записанным его владельцем (вероятно, root) и определенной группой.
30
в виду, что в имени файла?Одним из способов является добавление пользователя в соответствующую «devivce-группу». В Linux существует целый ряд групп для различных типов устройств (диск, дискета, tty, видео, cdrom, ...), поэтому вы можете добавить пользователя в соответствующую группу в / etc / group.
Другой способ - создать «псевдопользователя» (например, пользователя игр). Вы добавляете этого пользователя в группы устройств, которые у него должны быть. Наконец, вы изменяете владельца определенных программ (например, программы для сканирования изображений) на этого пользователя и устанавливаете «chmod u + s». Это приведет к тому, что программа будет запущена как псевдопользователь, а не как реальный пользователь, и, следовательно, будет иметь доступ к устройствам. Вы можете использовать группу программ, чтобы ограничить, какой пользователь может выполнять программу.
Наконец, вы можете установить группу программ, нуждающихся в определенном устройстве, в группу устройств и установить «chmod g + s». Это приведет к запуску программы с правами группы (в дополнение к праву обычного пользователя, выполняющего ее), что обеспечит расширенный доступ к устройству.
источник
Да, вы можете, но сначала вам нужно разрешение root. Начиная с linux 2.2, он имеет возможности, используйте разделенные права доступа. С помощью списка вы можете использовать:
setcap cap_net_raw,cap_net_admin=eip xxxx
xxxx - это любая исполняемая программа, вы можете вызывать libpcap самостоятельно.
источник