Bug 28353

Summary: права на устройство сканера выставляются как root.root
Product: Sisyphus Reporter: Gleb Kulikov <glebus>
Component: libsaneAssignee: Vitaly Lipatov <lav>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: major    
Priority: P3 CC: imz, lav, mike, nickel, qa_viy, sem, shaba, stalker, viy
Version: unstable   
Hardware: all   
OS: Linux   

Description Gleb Kulikov 2013-01-15 08:27:24 MSK
usb 1-7: New USB device found, idVendor=055f, idProduct=021d                                        
usb 1-7: New USB device strings: Mfr=0, Product=1, SerialNumber=0                                   
usb 1-7: Product: USB Scanner

правило для устройства отсутствует.
Comment 1 Alexey Shabalin 2013-01-17 21:22:44 MSK
Перевешиваю баг на libsane, т.к.
# Mustek BearPaw 2400 CU Plus
ATTRS{idVendor}=="055f", ATTRS{idProduct}=="021d", MODE="0664", ENV{libsane_matched}="yes"
определён в 
rpm -qf /etc/udev/rules.d/25-libsane.rules
libsane-1.0.23-alt2

У вас вообще sane установлен?

PS: мантейнеру sane: системные неизменяемые udev rules лучше перенести из /etc/udev/rules.d в /lib/udev/rules.d, а в /etc для администратора, если он что-то захочет поправить.
Comment 2 Gleb Kulikov 2013-01-18 13:06:06 MSK
(В ответ на комментарий №1)
> Перевешиваю баг на libsane, т.к.
> У вас вообще sane установлен?

а как же. причём, правило такое в /etc/udev/rules.d/25-libsane.rules действительно, есть.

Тем не менее, устройство получает права root.root.
проверялось на двух разных машинах (X86_64),
libsane-1.0.22-alt1
libsane-1.0.23-alt2
Comment 3 Ivan Zakharyaschev 2014-01-27 20:01:03 MSK
Эта проблема имеет что-то общее с замеченным в http://www.altlinux.org/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D1%81%D0%BA%D0%B0%D0%BD%D0%B5%D1%80%D0%B0_%D0%B2_ALT_Linux#Доступ_к_сканеру_для_других_пользователей , http://forum.altlinux.org/index.php/topic,8441.msg114093.html#msg114093 (ещё 29.09.2010):

"Добавить: GROUP="scanner" в /etc/udev/rules.d/25-libsane.rules"

"Исправьте в удевных правилах: добавьте выставление нужных прав...  25-libsane.rules после каких-то обновлений оттуда ушла GROUP="scanner""

Т.е. проблема с правами появилась давно, но в пакет её решение не добавили. М.б. задумывалось какое-то другое решение, чем GROUP="scanner"?..

У меня, например, в p6:

$ l /dev/bus/usb/010/002 
crw-rw-r--+ 1 root lp 189, 1153 янв 27 19:24 /dev/bus/usb/010/002
$ 

(это МФУ)

ни один пользователь в группу lp не входит, но при этом первый пользователь, зашедший через dm, может обнаружить этот сканер с scanimage -L или sane-find-scanner , так же, как и root:

[root@cerob ~]# sane-find-scanner -q
could not fetch string descriptor: Pipe error
could not fetch string descriptor: Pipe error
found USB scanner (vendor=0x03f0, product=0x3b17) at libusb:010:002
could not fetch string descriptor: Pipe error
could not fetch string descriptor: Pipe error
[root@cerob ~]# scanimage -L
device `hpljm1005:libusb:010:002' is a Hewlett-Packard LaserJet M1005 multi-function peripheral
device `hpaio:/usb/HP_LaserJet_M1005?serial=KJ1N5CL' is a Hewlett-Packard HP_LaserJet_M1005 all-in-one
[root@cerob ~]# 

а другой (зашедший в консоли и сделавший startx) не может (отрывок):

libusb couldn't open USB device /dev/bus/usb/010/002: Permission denied.
libusb requires write access to USB device nodes.

Т.е. вроде работает какой-то другой механизм доступа к устройству, помимо группы.

А также в это случае видно, что выставлять группу scanner на устройство было бы действительно неправильно, т.к. оно ещё и принтер.
Comment 4 Ivan Zakharyaschev 2014-01-27 20:10:48 MSK
(В ответ на комментарий №3)
> У меня, например, в p6:
> 
> $ l /dev/bus/usb/010/002 
> crw-rw-r--+ 1 root lp 189, 1153 янв 27 19:24 /dev/bus/usb/010/002
> $ 

info ls:

     A file with any other combination of alternate access methods is
     marked with a `+' character.

Какие тут alternate access methods, я не знаю.

Ещё: если просто зайти в консоли, то сканер пользователю виден. А если потом ещё startx, то нет.
Comment 5 Ivan Zakharyaschev 2014-01-27 20:40:07 MSK
(В ответ на комментарий №4)
> (В ответ на комментарий №3)
> > У меня, например, в p6:
> > 
> > $ l /dev/bus/usb/010/002 
> > crw-rw-r--+ 1 root lp 189, 1153 янв 27 19:24 /dev/bus/usb/010/002
> > $ 
> 
> info ls:
> 
>      A file with any other combination of alternate access methods is
>      marked with a `+' character.
> 
> Какие тут alternate access methods, я не знаю.
> 
> Ещё: если просто зайти в консоли, то сканер пользователю виден. А если потом
> ещё startx, то нет.

http://osdir.com/ml/ubuntu-desktop/2010-03/msg00058.html :

No, the udev script should be the only one. The intention is that the
user who has the current foreground console gets those extra ACL
privileges, and other users get them revoked if they loose the
foreground console (i. e. for user switching, etc.). This ensures that
hardware that you plug in gets activated for the "current" user.

Наверное, после startx как-то не так определяется the
user who has the current foreground console (у меня в p6). А группа scanner, кажется,  необязательна, если мы просто хотим, чтобы пользователь за консолью имел доступ.
Comment 6 Ivan Zakharyaschev 2014-01-27 20:52:21 MSK
(В ответ на комментарий №5)

> Наверное, после startx как-то не так определяется the
> user who has the current foreground console (у меня в p6). А группа scanner,
> кажется,  необязательна, если мы просто хотим, чтобы пользователь за консолью
> имел доступ.

Думаю, это нехорошо: https://bugzilla.altlinux.org/show_bug.cgi?id=29758
Comment 7 Michael Shigorin 2015-07-03 15:20:40 MSK
Просто к сведению: попался в руки Canon MF8540CDn, под http://nightly.altlinux.org/p7/beta/altlinux-p7-mate-20150703-i586.iso (стартеркит с добавленным sane-1.0.25-alt0.2, который git snapshot) работает по USB без никаких проблем (ц) с правами.

(В ответ на комментарий №5)
> Наверное, после startx как-то не так определяется the
> user who has the current foreground console (у меня в p6).
На p6 сессиями занимался ConsoleKit, если что.  Не уверен, этими ли.
Comment 8 Gleb Kulikov 2015-07-06 09:39:06 MSK
Да, где-то с год, как ошибка ушла
Comment 9 Gleb Kulikov 2015-07-06 09:40:45 MSK
перестало воспроизводиться