Skanery USB i uprawnienia dla użytkownika - porady

Slackware FAQ - czyli baza pytań i odpowiedzi.

Moderatorzy: Moderatorzy, Administratorzy

ODPOWIEDZ
Awatar użytkownika
Minder
Użytkownik
Posty: 540
Rejestracja: 2004-08-08, 15:12
Lokalizacja: Bielsko-Biała
Kontakt:

Skanery USB i uprawnienia dla użytkownika - porady

Post autor: Minder » 2004-11-01, 01:53

Skanery USB i uprawnienia dla użytkownika - porady


Często pojawia się problem z niemożliwością skorzystania ze skanera połączonego przez usb, pracując z uprawnieniami zwykłego użytkownika. Zazwyczaj ma to miejsce podczas migracji z kernela 2.4 na 2.6 i obsługą mechanizmów udev oraz hotplug.

Podstawową rzeczą jaką należy zauważy to to, że skanery usb nie są montowane w katalogu /dev. W związku z tym wykonywanie zmian w ustawienia mechanizmu udev nie przyniesie skutku. Mimo, że zachęcają do tego wpisy w pliku /etc/udev/permissions.c/udev.permissions. Skanery usb sa obsługiwane przez mechanizm hotplug i po połączeniu pojawia się w katalogu /proc.

Istnieją sposoby rozwiązania problemu ze skanowaniem jako zwykły użytkownik. Oto one:

1 sposób (szybki)
Wykonujemy polecenie:
# sane-find-scanner

Wyszukujemy linijkę z tekstem libusb:xxx:xxx gdzie xxx, to numery pod którymi ujawnia się twój skaner np.: libusb:002:002. Następnie w pliku /etc/rc.d/rc.local wpisujemy polecenie:

Kod: Zaznacz cały

chmod a+rw /proc/bus/usb/xxx/xxx
Oczywiście zamiast xxx, wpisujemy to, co pokazuje sane-find-scanner. W przykładzie wygląda to następująco:

Kod: Zaznacz cały

# Scanner for everyone
chmod a+rw /proc/bus/usb/002/002
Teraz już spokojnie możemy skanować jako zwykły użytkownik.

Co właściwie zrobiliśmy?

W skrypcie startowym naszego systemu, wykonywanym na samym końcu, przypisaliśmy wszystkim użytkownikom uprawnienia zapisu i odczytu z naszego skanera (parametr a), skrywającego się pod tym plikiem. Jest to oczywiście sposób najszybszy, ale razi swoją nieelegancją.


2 sposób (elegancki)
Wykonujemy polecenie
# sane-find-scanner

Wyszukujemy linijkę z tekstem libusb:xxx:xxx, gdzie xxx, to numery pod którymi ujawnia się twój skaner np.: libusb:002:002. Następnie w pliku /etc/rc.d/rc.local wpisujemy polecenia:

Kod: Zaznacz cały

chown :scanner /proc/bus/usb/xxx/xxx
chmod g+rw /proc/bus/usb/xxx/xxx
Oczywiście zamiast xxx, wpisujemy to, co pokazuje sane-find-scanner. W przykładzie wygląda to następująco:

Kod: Zaznacz cały

# Scanner only for group scanner
chown :scanner /proc/bus/usb/002/002
chmod g+rw /proc/bus/usb/002/002
Teraz tworzymy grupę scanner poleceniem
# groupadd scanner
i przypisujemy do niej użytkownika, któremu chcemy udostępnić skaner. I to wszystko, skaner funkcjonuje na kontach użytkowników przydzielonych do grupy scanner

Co właściwie zrobiliśmy?

W skrypcie startowym naszego systemu, wykonywanym na samym końcu, przypisaliśmy grupie scanner uprawnienia zapisu i odczytu z naszego skanera (parametr g), skrywającego się pod tym plikiem. Dalej stworzyliśmy taką grupę i przypisaliśmy do niej użytkownika. Jest to już rozwiązanie eleganckie, bo skaner kontroluje odpowiednia grupa a my możemy dowolnie manipulować tym, kto będzie miał do niego dostęp.



Niestety, powyższe przykłady to tylko leczenie objawów choroby, bo właściwie powinno się zastosować sposób trzeci, czyli zlikwidowanie przyczyny niewłaściwego rozporządzania uprawnieniami na pliki w /proc/bus/usb przez hotplug. Na razie jednak, nikt takiego sposobu nie wymyślił.




Autorzy: Minder, Vrindar
Skład: Skyscraper
Ostatnio zmieniony 2006-10-20, 12:50 przez Minder, łącznie zmieniany 1 raz.

ODPOWIEDZ