
у меня естьЭпсон 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
.