Настройка SCSI- или USB-сканера для работы с SANE/XSANE от обычного пользователя
Коротко о проблеме
XSANE и sane-find-scanner отказываются видеть устройство у обычного пользователя, но всё работает у root. Это классическая проблема прав доступа: устройства в /dev принадлежат конкретным пользователям/группам, и не все аккаунты имеют к ним доступ.
Определения в одну строку:
- SANE — набор драйверов/библиотек для сканеров в Linux.
- XSANE — графический интерфейс для SANE.
- udev — менеджер устройств в Linux, отвечает за создание узлов в /dev.
Шаги решения (пошагово)
- Найдите сканер как root
[root@berlin dev]# sane-find-scannerОжидаемый пример вывода (из исходного howto):
found SCSI processor "HP C2520A 3644" at /dev/sg0
# Your SCSI scanner was detected. It may or may not be supported by SANE. Try
# scanimage -L and read the backend's manpage.# No USB scanners found. If you expected something different, make sure that
# you have loaded a driver for your USB host controller and have installed a
# kernel scanner module.- Посмотрите права на устройство
[root@berlin dev]# ls -al sg0Пример:
crw-rw---- 1 root disk 21, 0 Apr 16 07:02 sg0Здесь видно, что устройство принадлежит пользователю root и группе disk.
- Добавьте вашего пользователя в соответствующую группу
- Можно отредактировать /etc/group и добавить имя пользователя в строку группы (например, disk).
Пример строки в /etc/group:
disk:x:6:root,vmorgo- Или используйте usermod с флагом -a (append), чтобы не потерять существующие группы:
usermod -a -G disk vmorgoВажно: не используйте usermod -G без -a, если хотите сохранить текущие группы пользователя — это удалит все перечисленные в параметре группы, которые вы не указали.
- Выйдите из сеанса и войдите снова
Новые групповые права начнут работать после повторного входа пользователя в систему (разлогин/релогин). Перезагрузка тоже решает задачу.
- Проверьте доступ от обычного пользователя
scanimage -L
xsaneОжидаемый результат: scanimage -L должен показать обнаруженный сканер.
Постоянное решение через udev (рекомендуется для USB-сканеров)
Изменение прав /dev вручную не сохраняется между перезагрузками. Для постоянного решения используйте udev-правило. Общий шаблон:
# /etc/udev/rules.d/60-scanner.rules
# Пример: установить группу scanner и права 0660 для устройства с конкретным USB-идентификатором
SUBSYSTEM=="usb", ATTR{idVendor}=="vvvv", ATTR{idProduct}=="pppp", MODE="0660", GROUP="scanner"Как найти идентификаторы idVendor и idProduct:
lsusbПрименить правила без перезагрузки:
udevadm control --reload-rules
udevadm triggerЕсли вы предпочитаете группу disk или другую, укажите её вместо scanner. После добавления правила и перезагрузки/перезапуска udev устройство будет создаваться с указанными правами автоматически.
Альтернативные подходы и когда они уместны
- Временно запускать XSANE от root (sudo xsane) — работает, но небезопасно и не рекомендуется для постоянного использования.
- Использовать polkit/PolicyKit для управления доступом — подходит в окружениях с GUI и централизованной политикой, но требует дополнительной настройки.
- Для SCSI-сканеров убедитесь, что backend SANE поддерживает ваш аппарат; в таком случае проблема чаще именно в разрешениях.
Когда это не помогает (возможные причины)
- Драйвер/бэкенд SANE не поддерживает модель сканера. Проверьте список поддерживаемых устройств и man-страницу бэкенда.
- Отсутствует модуль ядра для контроллера USB или SCSI (kernel scanner module). Проверьте dmesg и lsmod.
- Устройство определяется под другой нодой (/dev/sg0, /dev/sg1, /dev/bus/usb/…); проверьте полностью вывод sane-find-scanner и lsusb.
- Аппаратная проблема или повреждённый кабель.
Практические рекомендации и чеклист по ролям
Для обычного пользователя:
- Выполните scanimage -L после релогина.
- Сообщите системному администратору вывод sane-find-scanner и ls -al устройства.
Для администратора системы:
- Найдите устройство как root.
- Определите нужную группу (disk, scanner или custom).
- Добавьте пользователя в группу или создайте udev-правило.
- Проверьте, что scanimage -L и XSANE видят устройство от имени пользователя.
Для службы поддержки:
- Попросите скриншоты/выводы: sane-find-scanner (root), ls -al /dev/… , lsusb.
- Проверьте логи dmesg и /var/log/messages на ошибки модулей.
Критерии приёмки
- scanimage -L показывает сканер, выполненный обычным пользователем.
- XSANE запускается от обычного пользователя и может сканировать.
- Права на /dev-узел корректны и сохраняются после перезагрузки (если используется udev правило).
Безопасность и риски
- Добавление пользователя в группу disk даёт доступ ко всем устройствам, принадлежащим disk; это увеличивает зону привилегий. Лучший подход — создать/использовать группу с минимальными правами (например, scanner) и дать этой группе доступ через udev.
Таблица риска (качественно):
- Риск: чрезмерные права (напр. disk) — Смягчение: используйте специализированную группу и udev.
- Риск: запуск приложений от root — Смягчение: избегать прямого запуска GUI от root, использовать правильно настроенные права.
Короткая методология (минимальные шаги)
- Как root: sane-find-scanner -> определить ноду устройства.
- Как root: ls -al на ноду -> узнать группу.
- Добавить пользователя в группу или создать udev-правило.
- Релогин/udevadm reload -> проверить scanimage -L.
Глоссарий в одну строку
- SANE: библиотека и набор бэкендов для сканирования в Linux.
- XSANE: графический интерфейс для SANE.
- udev: подсистема управления устройствами, создаёт устройства в /dev.
- sg/sg0: нода SCSI generic, часто используется SCSI-сканерами.
Итог
Проблема «No devices found» у обычного пользователя почти всегда решается правами на устройстве. Быстрый и безопасный путь — создать или использовать узкую группу (не disk, если хотите снизить риск), прописать udev-правило с нужными правами и добавить пользователя в эту группу. После этого scanimage -L и XSANE должны нормально видеть и использовать сканер.
Важно: не редактируйте права /dev вручную для постоянного решения — изменения пропадут после перезагрузки; используйте udev.
Примечание: если устройство не поддерживается бэкендом SANE или не работает на уровне ядра, сначала устраните эти проблемы, прежде чем настраивать права доступа.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента