Какие права нужно назначить пользователю в Linux для управления USB-устройствами?

«Какие права нужно назначить пользователю в Linux для управления USB-устройствами?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Основной способ — добавить пользователя в соответствующую группу, которая имеет доступ к USB-устройствам через udev. Это безопаснее, чем давать права sudo или менять владельца устройства напрямую.

Стандартный метод (через группы):

  1. Определите, к каким группам принадлежат ваши USB-устройства. Обычно это plugdev (для съемных устройств) или usb.

    ls -l /dev/bus/usb/*/*
    # crw-rw-r-- 1 root plugdev 189, 0 мая 15 10:00 /dev/bus/usb/001/001
  2. Добавьте пользователя в нужную группу (чаще всего plugdev).

    sudo usermod -aG plugdev <username>
    # Или для usb
    sudo usermod -aG usb <username>
  3. Пользователю необходимо выйти из системы и зайти заново, чтобы изменения вступили в силу.

Альтернативный метод (если группы нет или нужен специфичный доступ): Создайте собственное правило udev в /etc/udev/rules.d/, например, 99-myusb.rules.

# Даем группе 'developers' права на чтение/запись ко всем USB-устройствам
SUBSYSTEM=="usb", GROUP="developers", MODE="0666"

# Более специфичное правило для конкретного устройства по vendor/product ID
SUBSYSTEM=="usb", ATTR{idVendor}=="1234", ATTR{idProduct}=="5678", GROUP="developers", MODE="0666"

После создания или изменения правил udev, примените их:

sudo udevadm control --reload-rules && sudo udevadm trigger
# Или просто перезагрузите систему

Важно: Использование MODE="0666" (чтение+запись для всех) может быть небезопасным в продакшене. Лучше создавать отдельную группу и назначать права только ей.