การสแกนใช้งานได้ภายใต้“ sudo” เท่านั้น (Ubuntu)


16

เมื่อผมลองสแกนโดยใช้ง่ายสแกน UI Failed to scan -- Unable to connect to scannerกล่าวว่า เมื่อฉันเรียกใช้จากบรรทัดคำสั่งฉันได้รับ:

joel@home:/usr/bin$ simple-scan -d
** (simple-scan:6554): DEBUG: Starting Simple Scan 2.32.0.1, PID=6554
** (simple-scan:6554): DEBUG: Restoring window to 600x400 pixels
** (simple-scan:6554): DEBUG: sane_init () -> SANE_STATUS_GOOD
** (simple-scan:6554): DEBUG: SANE version 1.0.22
** (simple-scan:6554): DEBUG: Requesting redetection of scan devices
** (simple-scan:6554): DEBUG: Processing request
** (simple-scan:6554): DEBUG: Requesting scan at 300 dpi from device '(null)'
** (simple-scan:6554): DEBUG: scanner_scan ("(null)", 300, SCAN_SINGLE)
** (simple-scan:6554): DEBUG: sane_get_devices () -> SANE_STATUS_GOOD
** (simple-scan:6554): DEBUG: Device: name="brother2:bus4;dev1" vendor="Brother" model="MFC-210C" type="USB scanner"
** (simple-scan:6554): DEBUG: Processing request
** (simple-scan:6554): DEBUG: sane_open ("brother2:bus4;dev1") -> SANE_STATUS_IO_ERROR

** (simple-scan:6554): WARNING **: Unable to get open device: Error during device I/O

FYI ฉันได้ทำไปแล้ว:

joel@home:~$ sudo chmod a+rwx /dev/bus/usb
joel@home:~$ sudo chmod a+rwx /dev/bus/usb/*

ถ้าฉันทำงานภายใต้sudo:

joel@home:~$ sudo simple-scan

มันได้ผล.

ฉันจะสแกนแบบง่าย ๆ ให้ทำงานโดยไม่ใช้ sudo ได้อย่างไร

คำตอบ:


7

โอกาสที่sanedไม่ได้คิดว่าคุณได้รับอนุญาตให้เชื่อมต่อกับมัน ดูหัวข้อปัญหาการอนุญาตของ Ubuntu Scanning How-to สำหรับรายละเอียด


2
ดูเหมือนว่าบัญชีผู้ใช้ทั้งหมดจะไม่ถูกเพิ่มไปยังกลุ่มสแกนเนอร์ ฉันใช้sudo adduser username scannerแล้วคุณต้องออกจากระบบและกลับเข้ามาอีกครั้งเพื่อให้ระบบสมาชิกสังเกตเห็นความเป็นสมาชิกกลุ่ม
KayEss

ไม่ได้ผลสำหรับฉัน ฉันดูเหมือนจะจำได้ว่าวิธีเดียวที่จะทำได้คือการใช้ sudo และรุ่นข้อความไม่สแกนง่าย จะให้ดู
เดนนิส

ข้อเสนอแนะของ KayEss ("sudo adduser username scanner") ทำงานสำหรับการติดตั้ง Raspbian ของฉัน
smashuu

5

ฉันมีปัญหาที่คล้ายกัน (Ubuntu 11.04 - Natty Narwhal): การสแกนเป็นรากทำงานได้ดีสแกนในฐานะผู้ใช้ - ไม่ไป scanimage -Lและsane-find-scannerพบและระบุสแกนเนอร์ได้อย่างถูกต้องแม้ในขณะที่ทำงานในฐานะผู้ใช้ปกติ `simple-scan -d ทั้งในฐานะผู้ใช้ root และปกติไม่ได้แสดงอะไรที่มีประโยชน์ในแง่ของกลุ่มที่ขาดหายไปถูกต้องไฟล์หรือไดรเวอร์ขาดหายไป

ในที่สุดการเชื่อมโยงนี้ทำงานให้ฉัน

วิธีแก้ไขคือแก้ไขไฟล์เหล่านี้:

  • /lib/udev/rules.d/40-libsane.rules
  • /etc/udev/rules.d/55-libsane.rules

ไม่แน่ใจว่าจำเป็นต้องแก้ไขทั้งคู่หรือไม่ฉันใช้การเปลี่ยนแปลงทั้งหมดตามที่อธิบายไว้ สำคัญมาก: REBOOT หลังจากแก้ไข


2

ฉันแก้ไขได้โดยเพิ่มบรรทัดนี้ไปที่/etc/rc.local(ก่อนหน้าexit 0):

chmod -R a+w /dev/bus/usb

และแก้ไข / สร้าง 2 ไฟล์ต่อไปนี้:

/etc/xinetd.d/saned:

service saned 
{
socket_type = stream
server = /usr/sbin/saned
protocol = tcp
user = root
group = root
wait = no
disable = no
}

/etc/default/saned:

# Defaults for the saned initscript, from sane-utils

# Set to yes to start saned
RUN=yes

# Set to the user saned should run as
RUN_AS_USER=root

จากนั้นรีบูตเครื่อง

มันใช้งานได้ แต่ฉันยังต้องการวิธีที่ปลอดภัยกว่าในการแก้ปัญหานี้


2

แก้ไขสิ่งต่อไปนี้:

/etc/default/saned

และเปลี่ยน:

RUN_AS_USER=saned

ถึง

RUN_AS_USER=root

รีสตาร์ทและทดสอบอีกครั้ง - สิ่งนี้น่าจะใช้ได้


2
มีบางอย่างบอกฉันว่านี่ไม่ใช่ทางออกที่ต้องการจากมุมมองด้านความปลอดภัย
Kazark

2

sudo adduser YOURNONROOTUSERNAME lp

เพื่อให้แน่ใจว่าสแกนเนอร์อยู่ในกลุ่มlp :

sudo sane-find-scanner

พบเครื่องสแกน USB (ผู้จำหน่าย = 0x04f9, ผลิตภัณฑ์ = 0x02a5) ที่ libusb: 001: 002

ls -al / dev / bus / usb / 001/002

crw-rw-r-- 1 root lp 189, 1 พฤศจิกายน 24 12:43 / dev / bus / usb / 001/002


0

ฉันมีปัญหาเดียวกันที่แน่นอนและงานนี้สำหรับฉันและมันก็ง่ายเหมือนที่ ฉันคัดลอกมาจากเว็บไซต์ Brother ที่แก้ไขปัญหาเครื่องสแกนของฉัน:

  1. เปิด/lib/udev/rules.d/40-libsane.rulesไฟล์

  2. เพิ่มสองบรรทัดต่อไปนี้ในตอนท้ายของรายการอุปกรณ์ (ก่อนบรรทัด# The following rule will disable ...):

    # Brother scanners

    ATTRS{idVendor}=="04f9", ENV{libsane_matched}="yes"


0

คุณต้องเพิ่มชื่อผู้ใช้ของคุณไปยังกลุ่มlpจากนั้นรีบูท (หรือsudo ldconfig) ทุกอย่างควรจะทำงาน

สิ่งนี้ใช้ได้กับฉันเพราะถ้าคุณวิ่งlsusbไปคว้าหมายเลขบัส USB ของเครื่องพิมพ์ / สแกนเนอร์ของคุณ (ของฉันคือ 005) จากนั้นll /dev/bus/usb/005คุณจะเห็นว่ารูทนั้นเป็นเจ้าของและlpคือกลุ่มทั้งสองมีสิทธิ์อ่านและเขียน


คุณเป็นadd your username to the lp group อย่างไรบ้าง

0

ฉันยังมีปัญหาเดียวกันกับเอปสัน EcoTank 2500 lsusbของฉันฉันเดินเข้าไปในสถานีและพบว่ารหัสผลิตภัณฑ์ที่มี สำหรับ EcoTank 2500 คือ 1105

แล้วก็

Open /lib/udev/rules.d/40-libsane.rules file.

จากนั้นฉันค้นหารหัสผลิตภัณฑ์นั้นด้วย gedit และหาไม่พบ ดังนั้นฉันเพิ่มลงไปด้านล่าง (ออกจากพื้นที่และเขียนใน CAPS ดังนั้นฉันรู้ว่ามันเป็นฉันที่เปลี่ยนมัน!)

# MY EPSON ECOTANK ET-2500

ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="1105", ENV{libsane_matched}="yes"

ฉันทำเช่นเดียวกันใน 40-iscan.rules (อยู่ในโฟลเดอร์เดียวกัน) ในที่สุดฉันก็เริ่มระบบใหม่ เฮ้ presto .... อ่าาา! งานของฉันเสร็จที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.