![扫描仪仅适用于 sudo](https://linux22.com/image/192266/%E6%89%AB%E6%8F%8F%E4%BB%AA%E4%BB%85%E9%80%82%E7%94%A8%E4%BA%8E%20sudo.png)
我有一个爱普生ET-2756打印机。我可以用它轻松打印,但我花了很长时间才明白为什么Debian 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
组中。 IE
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
。