Сканер доступен только с sudo

Сканер доступен только с sudo

у меня естьЭпсон ET-2756принтер. Я могу легко печатать на нем, но мне потребовалось много времени, чтобы понять, почему подДебиан 10Мой компьютер не смог обнаружить сканер.

В конце концов я нашел причину: scanimageкоманда (и затем epsonscan2специально установленная для принтера) способна обнаружить свой сканер только в том случае, если они запущены с sudo.

Интересно, почему... И особенно, я хотел бы убрать это предварительное условие.
Как я могу убрать необходимость в sudoвыполнении сканирования?


Опыт, предложенный cas, ниже:

# I look already registered as a scanner group member
cat /etc/group | grep scanner
scanner:x:117:saned,lebihan

# But this command fails:
scanimage --format=png >/tmp/test.png
scanimage: no SANE devices found

# While this one succeeds:
sudo scanimage --format=png >/tmp/test.png

решение1

Добавьте своего пользователя в scannerгруппу. т.е.

sudo addgroup yourusername scanner

При следующем входе в систему ваш uid сможет использовать сканер.

В качестве альтернативы libpam-systemdпакет может гарантировать установку правильных разрешений при входе пользователя в систему,еслиДля этого есть соответствующие udevправила. Хотя проще просто добавить себя в группу сканера.

См. следующее на Debian Wiki:

решение2

Многие проблемы с доступом к устройствам можно решить путем изменения членства в группе.

Вы можете узнать имя устройства, наблюдая sudo journalctl --followза процессом его подключения. ИЛИ ls -1 /dev >dev.beforeподключите устройство, подождите 10 секунд, ls -1 /dev >dev.after;diff dev.{before,after}ИЛИ подключите его повторно и ls -lrt /dev | tail.

В частности, если ls -l показано, что разрешения группы (вторая rwxтройка " ") - " rw" (например, " -rw-rw----"), то добавление себя в группу, владеющую устройством, предоставит rwдоступ.

Вот как:

device="/dev/whatever"
sudo adduser $USER $(stat -c "%G" $device)

Это позволяет вам стать членом группы, которая может использовать rwустройство,Но есть еще один шаг.

Чтобы сделать все ваши процессы членами новой группы, выйдите из системы и войдите в нее. Членство в группе настраивается во loginвремя.

Чтобы создать один процесс в новой группе (для тестирования, перед выходом/входом в систему):

newgrp $(stat -c "%G" $device)  

или просто введите имя группы. Смотрите man newgrp.

Связанный контент