• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Berechtigung für USB Device

Punki

Member
Hi zusammen,

ich habe eine Steckdosenleiste die über USB gesteuert werden kann. Unter root funktioniert sie perfekt.
Dem 'normalen' User fehlen die Zugriffsberechtigungen - siehe Fehlermeldungen:

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

Mein System ist openSUSE 11.3. Nach Informationen des Steckdosenherstellers ist folgendes

add usb:vendor=0x04b4,product=0xfd11 usb

in die /etc/resmgr.conf einzufügen. Diese Datei gibt es aber nicht unter 11.3. Was kann ich alternativ
nutzen/einstellen.

Vielen Dank für eure Hilfe.

Gruß

Punki
 
OP
P

Punki

Member
Hi spoensche,

mit deinem Eintrag ist mir leider nicht geholfen.
Ich kann das auch garnicht 'einsortieren'. Deswegen habe ich nach der grundsätzlichen
Verwendung von usb_modeswitch gesehen und folgendes gefunden:

USB_ModeSwitch is a mode switching tool for controlling "flip flop" (multiple device) USB gear.
It allows so-called "Zero-CD" devices that show up as USB storage initially to be switched into their
more useful "application mode". This is most common for UMTS/3G wireless WAN devices.

Eigentlich würde ich denken, dass ich mit

/etc/udev/rules.d/xx-basic-permissions.rules
oder
/lib/udev/rules.d/xx-udev-default.rules

agieren muss. Aber da habe ich keine Erfahrung... deswegen wollte ich erst einmal nachfragen.

Vielleicht hat jemand noch eine Idee.

Gruß

Punki
 

dma67

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

Hallo, wie ist dieses USB-Medium formatiert? Würde mich nicht wundern, wenn es ntfs wäre.
 
OP
P

Punki

Member
Hallo Darius,

es handelt sich um eine Steckdosenleiste! - Kein Speichermedium! Mit der Leiste will ich
scriptgesteuert Geräte ein- und ausschalten. Es funktioniert ja soweit auch (unter root).
Ich möchte aber meine Scripte nicht mit root-Berechtigung ausführen.

Gruß

Punki
 

dma67

Hacker
Hi, so etwas habe ich zufällig gefunden
http://forum.ubuntu-nl.org/software-en-configuratie/usb-apparaat-gebruiken-als-gewone-gebruiker-zonder-sudo/

spreche zwar nicht fließend Niederländisch, aber ich kann es mit Verständnis lesen.

Es handelt sich ja wohl um Dein Gerät.


Code:
chown root:root  sispmctl

und
Code:
chmod u+s  sispmctl

Für paranoide User ist es vielleicht nicht so optimal.
 

spoensche

Moderator
Teammitglied
dariuszmarek schrieb:
Code:
chown root:root  sispmctl

und
Code:
chmod u+s  sispmctl

Für paranoide User ist es vielleicht nicht so optimal.
Das hat nichts mit paranoid zu tun. Der Zugriff, den User als dann als root auf Geräte bzw. Hardware haben würden ist alles andere als unkritisch. Das ist genau so, als wenn du dir von deiner Katze den RAM und CPU bauen lässt.

Das regelt man mit Benutzergruppen, dafür gibt es sie ja. Der Benutzer, der die Steckdosenleiste steuern darf wird Mitglied der entsprechenden Gruppe.
Eine andere Möglichkeit ist die Regelung per sudoers, in der man dann festlegt, dass der Benutzer den entsprechenden Befehl ausführen darf.
 
OP
P

Punki

Member
Hi zusammen,

die Berechtigungsvergabe wie er im letzten Beitrag geschrieben worden ist funktioniert NICHT!

Da ich auch eine REINERSCT Kartenleser betreibe werde ich mich damit nun einmal beschäftigen um
zu erkennen wie der funktioniert. Dann werde ich wieder berichten.

Gruß

Punki
 

Hase

Newbie
Uh, ein ganz alter Thread, aber ich habe gerade das gleiche Problem gehabt. Dass die alte Methode mit resmgrd nicht mehr geht, liegt wohl an der Umstellung von hal auf udev. Aber so geht's:

1. Erst mal verfolgen was passiert, wenn das Gerät eingesteckt wird:
Code:
ha@linux-pc:~$ sudo tail -f /var/log/messages
Sep 18 15:24:23 linux-pc kernel: [25217.634143] usb 3-1: new low speed USB device using uhci_hcd and address 4
Sep 18 15:24:24 linux-pc kernel: [25217.803132] usb 3-1: New USB device found, idVendor=04b4, idProduct=fd13
Sep 18 15:24:24 linux-pc kernel: [25217.803141] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Sep 18 15:24:24 linux-pc kernel: [25217.803148] usb 3-1: Product: Gembird Silver Shield PM
Sep 18 15:24:24 linux-pc kernel: [25217.803153] usb 3-1: Manufacturer: Gembird Electronics
Sep 18 15:24:24 linux-pc kernel: [25217.806325] usbhid 3-1:1.0: couldn't find an input interrupt endpoint
Sep 18 15:24:24 linux-pc mtp-probe: checking bus 3, device 4: "/sys/devices/pci0000:00/0000:00:1a.0/usb3/3-1"
Sep 18 15:24:24 linux-pc mtp-probe: bus: 3, device: 4 was not an MTP device

2. Mit diesen Informationen weitere abfragen:

Code:
ha@linux-pc:~$ sudo /sbin/udevadm info -a --path=/sys/devices/pci0000:00/0000:00:1a.0/usb3/3-1 

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/devices/pci0000:00/0000:00:1a.0/usb3/3-1':
    KERNEL=="3-1"
    SUBSYSTEM=="usb"
    DRIVER=="usb"
    ATTR{configuration}==""
    ATTR{bNumInterfaces}==" 1"
    ATTR{bConfigurationValue}=="1"
    ATTR{bmAttributes}=="80"
    ATTR{bMaxPower}=="150mA"
    ATTR{urbnum}=="17"
    ATTR{idVendor}=="04b4"
    ATTR{idProduct}=="fd13"
    ATTR{bcdDevice}=="0101"
    ATTR{bDeviceClass}=="00"
    ATTR{bDeviceSubClass}=="00"
    ATTR{bDeviceProtocol}=="00"
    ATTR{bNumConfigurations}=="1"
    ATTR{bMaxPacketSize0}=="8"
    ATTR{speed}=="1.5"
    ATTR{busnum}=="3"
    ATTR{devnum}=="4"
    ATTR{devpath}=="1"
    ATTR{version}==" 1.10"
    ATTR{maxchild}=="0"
    ATTR{quirks}=="0x0"
    ATTR{avoid_reset_quirk}=="0"
    ATTR{authorized}=="1"
    ATTR{manufacturer}=="Gembird Electronics"
    ATTR{product}=="Gembird Silver Shield PM"
...

3. Jetzt unter /lib/udev/rules.d als root die neuen Datei "10-locals.rules" erstellen mit folgendem Inhalt:
Code:
SUBSYSTEM=="usb", ATTR{product}=="Gembird Silver Shield PM", SYMLINK+="silvershield", GROUP="users"

Der SYMLINK dürfte optional sein. Mit dieser Regel wird dieses Gerät, und genau dieses, der Gruppe "users" zugeordnet. Man könnte auch eine neue Gruppe (z.B. 'silvershield') erstellen und hier eintragen, wenn nicht alle user Zugriff haben sollen.

4. Jetzt noch

Code:
ha@linux-pc:~$ sudo /etc/init.d/boot.udev_retry restart

und "sispmctl" kann als normaler User benutzt werden. Diese Methode sollte eigentlich mit allen USB-Geräten funktionieren.

H.
 

Hase

Newbie
tomm.fa schrieb:
Überhaupt nicht, dass kann nur der Themenersteller wenn dem so ist. Ein Grund weshalb man sich nicht an andere Themen dranhängt.

Habe ich das getan? Meine Antwort passt zu 100% auf die ursprüngliche Frage, was soll das also mit "an andere Themen dranhängen"?
 
Oben