Как предоставить некорневой пользовательский доступ к файлам устройств

В зависимости от языка Вы используете.

Для следующего проверки C/C++:

  • libcal3d
  • libcoin
  • libcrystalspace
  • libg3d
  • libirrlicht
  • libogre

Для Java:

  • libjava3d-java

Для Python:

  • соя Python
  • python-opengl

Весело провести время. Соя Python является, вероятно, самой простой запуститься с.

16
16.04.2013, 02:28
2 ответа

Да, можно записать правило udev.

В /etc/udev/rules.d сделайте файл 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, позволяет устройству быть записанным в, он - владелец (вероятно, корень) и определенная группа.

16
27.01.2020, 19:48
  • 1
    Какова роль числа в имени файла правил? Я имею в виду это 30 в имени файла? –  Saeid Yazdani 25.09.2016, 11:10
  • 2
    Эти конфигурационные файлы загружаются в алфавитном порядке. Путем добавления префикса фактических имен файлов числа можно определить порядок, в котором они загружаются. –  paolo 05.04.2017, 10:10

Один путь состоит в том, чтобы добавить пользователя к соответствующей "devivce-группе". Существует целый диапазон групп для различных видов устройств (диск, дискета, tty, видео, CD-ROM...) в соответствии с Linux, таким образом, можно добавить пользователя к соответствующей группе в/etc/group.

Иначе должен сделать "псевдопользователя" (например, игрового пользователя). Вы добавляете этого пользователя к группам устройств, которые это должно иметь. Наконец Вы изменяете владельца определенных программ (как программа для сканирования изображений) этому пользователю и устанавливаете "chmod u+s". Это заставит программу быть выполненной как псевдопользователь - не реальный пользователь, таким образом имея доступ к устройствам. Можно использовать группу программ для ограничения, какой пользователь может выполнить программу.

Наконец, можно установить группу программ, бывших нужных в определенном устройстве к группе устройств, и установить "chmod g+s". Это заставит программу работать с правами группы (кроме того, направо от обычного пользователя, выполняющего его), таким образом предоставляя расширенный доступ к устройству.

3
27.01.2020, 19:48

Теги

Похожие вопросы