Markus Pitha: /dev nur als Root

Hallo,

aus einem unerfindlichen Grund konnte ich bisher nur als Root die Bilder meiner Digicam, die mit /dev/sda1 angesteuert werden kann, entladen. Wenig später kam ich drauf, dass ich mit K3B auch nur mehr als Root CDs brennen kann. Ich weiß, dass es als Normaluser auch schon mal ging. Jetzt gerade kam ich drauf, dass ich auch nur mehr als Root CDs mit XMMS anhören kann.
Ich bin jetzt fest davon überzeugt, dass udev, oder zumindest das Einbinden der Dateisysteme irgend etwas damit zu tun hat. Was hat es am System verändert, dass ich als Normaluser nichts mehr machen darf und wie kann ich dem Normaluser den Zugriff wieder erlauben?

Markus.

--
http://www.apostrophitis.at
http://www.pithax.net
Wenn ich ein toller Programmierer währe, könnte ich vieleicht sogar Packete nach einem gewissen Standart kompelieren...
Vieleicht progge ich aber auch eine tolle Gallerie, die dann hoffentlich funzt.
  1. hallo Markus,

    aus einem unerfindlichen Grund konnte ich bisher nur als Root die Bilder meiner Digicam, die mit /dev/sda1 angesteuert werden kann, entladen.

    Bist du sicher, daß das wirklich /dev/sda1 ist? Mir ist bisher keine Kamera bekannt, die als SCSI-Gerät angestöpselt werden muß. Normalerweise sollten Kameras USB-Geräte sein.

    Wenig später kam ich drauf, dass ich mit K3B auch nur mehr als Root CDs brennen kann. Ich weiß, dass es als Normaluser auch schon mal ging. Jetzt gerade kam ich drauf, dass ich auch nur mehr als Root CDs mit XMMS anhören kann.

    Das klingt schon komplizierter.

    Ich bin jetzt fest davon überzeugt, dass udev, oder zumindest das Einbinden der Dateisysteme irgend etwas damit zu tun hat. Was hat es am System verändert, dass ich als Normaluser nichts mehr machen darf und wie kann ich dem Normaluser den Zugriff wieder erlauben?

    Was hast du denn gemacht? Läuft eventuell über einen Cronjob ein --emerge sync oder sowas Ähnliches? Für das Einbinden der Dateisysteme ist /etc/fstab zuständig, aber das ist dir ja bestens bekannt. Gibts da irgendwelche Optionen, beispielsweise irgendwas mit umask?

    Grüße aus Berlin

    Christoph S.

    --
    Visitenkarte
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
    1. Hi Christoph!

      aus einem unerfindlichen Grund konnte ich bisher nur als Root die Bilder meiner Digicam, die mit /dev/sda1 angesteuert werden kann, entladen.

      Bist du sicher, daß das wirklich /dev/sda1 ist? Mir ist bisher keine Kamera bekannt, die als SCSI-Gerät angestöpselt werden muß. Normalerweise sollten Kameras USB-Geräte sein.

      Was ist denn daran bitte so komisch? Jeder USB-Stick (und auch viele andere USB-Geräte) wird ebenfalls als /dev/sd[a-z] erkannt - warum nicht also auch eine Kamera, die man im weitesten Sinne ja auch als »Mass Storage Device« ansehen kann. Was das mit SCSI zu tun hat, erläutert diese Seite knapp.

      Ich bin jetzt fest davon überzeugt, dass udev, oder zumindest das Einbinden der Dateisysteme irgend etwas damit zu tun hat. Was hat es am System verändert, dass ich als Normaluser nichts mehr machen darf und wie kann ich dem Normaluser den Zugriff wieder erlauben?

      Was hast du denn gemacht? Läuft eventuell über einen Cronjob ein --emerge sync oder sowas Ähnliches? Für das Einbinden der Dateisysteme ist /etc/fstab zuständig, aber das ist dir ja bestens bekannt. Gibts da irgendwelche Optionen, beispielsweise irgendwas mit umask?

      Was soll den ein »emerge --sync« damit zu tun haben? Die umask dürfte auch stimmen, da ansonsten was größeres mit dem System nicht stimmt.

      Grüße,
      Fabian St.

  2. Hi!

    Hallo,

    aus einem unerfindlichen Grund konnte ich bisher nur als Root die Bilder meiner Digicam, die mit /dev/sda1 angesteuert werden kann, entladen. Wenig später kam ich drauf, dass ich mit K3B auch nur mehr als Root CDs brennen kann. Ich weiß, dass es als Normaluser auch schon mal ging. Jetzt gerade kam ich drauf, dass ich auch nur mehr als Root CDs mit XMMS anhören kann.
    Ich bin jetzt fest davon überzeugt, dass udev, oder zumindest das Einbinden der Dateisysteme irgend etwas damit zu tun hat. Was hat es am System verändert, dass ich als Normaluser nichts mehr machen darf und wie kann ich dem Normaluser den Zugriff wieder erlauben?

    Dass, was du schilderst hört sich nach einem Rechteproblem an, was mit großer Gewissheit darauf zurückgeführt werden kann, dass deine Gruppenzugehörigkeiten ein bisschen durcheinander geraten sind. Füge mal deinen User den Gruppen disk, audio, cdrom, cdrw hinzu (gpasswd -a <uname> <group>) und schau, ob sich das Problem damit lösen lässt.

    Ansonsten müsstest du mal einen Blick darauf werfen, wie deine /etc/udev/rules.d/50-udev.rules aussieht und dort eventuelle Veränderungen vornehmen.

    Grüße,
    Fabian St.

    1. Hallo,

      Dass, was du schilderst hört sich nach einem Rechteproblem an, was mit großer Gewissheit darauf zurückgeführt werden kann, dass deine Gruppenzugehörigkeiten ein bisschen durcheinander geraten sind. Füge mal deinen User den Gruppen disk, audio, cdrom, cdrw hinzu (gpasswd -a <uname> <group>) und schau, ob sich das Problem damit lösen lässt.

      Das hat leider nicht funktioniert, obwohl ich dabei fast zuversichtlich gewesen wäre, da ich aus versehen einmal usermod -G ausführte, und ich meinem User alle Gruppen entzog, wodurch ich diese wieder im Nachhinein wieder zuweisen musste, und ich dabei diese oder jene vergessen hätte können, wobei ich sagen muss, dass ich noch nie irgendwelche Gruppen wie cdrw an einem User vergeben habe, wobei es bisher auch so funktioniert hat.

      Ansonsten müsstest du mal einen Blick darauf werfen, wie deine /etc/udev/rules.d/50-udev.rules aussieht und dort eventuelle Veränderungen vornehmen.

      Ich dachte, udev sei nur eine optionale Funktion, die ich nicht unbedingt setzen muss? Außerdem komme ich irgendwie nicht mal dazu, irgendwelche Regeln zu definieren.
      udev macht's mir mit "udevinfo" nicht gerade leicht. Ich komme weder zu einer Seriennummer von der Kamera, oder noch zu irgend einer anderen Ausgabe, die doch, laut Google, mit "udevinfo" abzufragen wäre.
      Jegliche Kombinationen von udevinfo -a -p /dev/sda1 o.ä scheitern an Meldungen wie "couldn't get the class device". Eine Regel aufzustellen ist aber ohne diese Angaben wohl nicht möglich, wenn ich das richtig verstanden habe. Dennoch habe ich es mit

      BUS="usb", SYSFS{vendor}="FUJIFILM", NAME="fujicam", SYMLINK="/dev/sda1"

      versucht, und danach # udevstart ausgeführt, aber wie ich mir dachte, ist nicht mal ein /dev/fujicam zu finden, welches ich dann auf die Zugänglichkeit für den Normaluser überprüfen hätte können.

      Markus.

      --
      http://www.apostrophitis.at
      http://www.pithax.net
      Wenn ich ein toller Programmierer währe, könnte ich vieleicht sogar Packete nach einem gewissen Standart kompelieren...
      Vieleicht progge ich aber auch eine tolle Gallerie, die dann hoffentlich funzt.
      1. BUS="usb", SYSFS{vendor}="FUJIFILM", NAME="fujicam", SYMLINK="/dev/sda1"

        Jetzt bin ich zwar auf die Seriennummer gekommen, und habe eine Regel erstellt (BUS="usb", SYSFS{vendor}="FUJIFILM", SYSFS{serial}="Y-4111^^^^^030116XFPX0002022356", NAME="%k", SYMLINK="fujicam"), die meiner Meinung nach korrekt ist, aber dennoch finde ich kein erzeugtes /dev/fujicam.

        Markus.

        --
        http://www.apostrophitis.at
        http://www.pithax.net
        Wenn ich ein toller Programmierer währe, könnte ich vieleicht sogar Packete nach einem gewissen Standart kompelieren...
        Vieleicht progge ich aber auch eine tolle Gallerie, die dann hoffentlich funzt.
      2. Hi!

        [Hinzufügen zu weiteren Gruppen]

        Das hat leider nicht funktioniert, obwohl ich dabei fast zuversichtlich gewesen wäre, da ich aus versehen einmal usermod -G ausführte, und ich meinem User alle Gruppen entzog, wodurch ich diese wieder im Nachhinein wieder zuweisen musste, und ich dabei diese oder jene vergessen hätte können, wobei ich sagen muss, dass ich noch nie irgendwelche Gruppen wie cdrw an einem User vergeben habe, wobei es bisher auch so funktioniert hat.

        Welche Rechte besitzen dann z.B. der Device-Node deines CD-Brenners (z.B. in meinem Fall ls -l /dev/sr0)? Wie sieht es mit der User-/Gruppenzugehörigkeit aus?

        Ansonsten müsstest du mal einen Blick darauf werfen, wie deine /etc/udev/rules.d/50-udev.rules aussieht und dort eventuelle Veränderungen vornehmen.

        Ich dachte, udev sei nur eine optionale Funktion, die ich nicht unbedingt setzen muss? Außerdem komme ich irgendwie nicht mal dazu, irgendwelche Regeln zu definieren.

        Naja, eine »optionale Funktion« würde ich udev nicht nennen, immerhin ist udev das Programm, mit dem der Linux-Kernel I/O-Gerätedateien verwaltet und ihm dadurch eine doch sehr wichtige Funktion zukommt.

        udev macht's mir mit "udevinfo" nicht gerade leicht. Ich komme weder zu einer Seriennummer von der Kamera, oder noch zu irgend einer anderen Ausgabe, die doch, laut Google, mit "udevinfo" abzufragen wäre.
        Jegliche Kombinationen von udevinfo -a -p /dev/sda1 o.ä scheitern an Meldungen wie "couldn't get the class device". Eine Regel aufzustellen ist aber ohne diese Angaben wohl nicht möglich, wenn ich das richtig verstanden habe. Dennoch habe ich es mit

        BUS="usb", SYSFS{vendor}="FUJIFILM", NAME="fujicam", SYMLINK="/dev/sda1"

        versucht, und danach # udevstart ausgeführt, aber wie ich mir dachte, ist nicht mal ein /dev/fujicam zu finden, welches ich dann auf die Zugänglichkeit für den Normaluser überprüfen hätte können.

        udevinfo ist eigentlich ganz einfach zu bedienen, wenn man weiß wie und die Hilfe gelesen hat ;-) Auf den Parameter -p muss der sog. »sysfs device path«  folgen, d.h. in deinem Falle udevinfo -a -p /sys/block/sda. Dann solltest du auch die jeweiligen Informationen bekommen und deine udev-Rule basteln können.

        Grüße,
        Fabian St.

        1. Hi!

          [Hinzufügen zu weiteren Gruppen]

          Das hat leider nicht funktioniert, obwohl ich dabei fast zuversichtlich gewesen wäre, da ich aus versehen einmal usermod -G ausführte, und ich meinem User alle Gruppen entzog, wodurch ich diese wieder im Nachhinein wieder zuweisen musste, und ich dabei diese oder jene vergessen hätte können, wobei ich sagen muss, dass ich noch nie irgendwelche Gruppen wie cdrw an einem User vergeben habe, wobei es bisher auch so funktioniert hat.

          Welche Rechte besitzen dann z.B. der Device-Node deines CD-Brenners (z.B. in meinem Fall ls -l /dev/sr0)? Wie sieht es mit der User-/Gruppenzugehörigkeit aus?

          Also mein CDRom und der Brenner haben:
          brw-rw----  1 root cdrom 3, 64 Oct  2 14:16 /dev/hdb
          brw-rw----  1 root cdrom 3, 64 Oct  2 14:16 /dev/hdd

          Sollte also so passen.

          udevinfo ist eigentlich ganz einfach zu bedienen, wenn man weiß wie und die Hilfe gelesen hat ;-) Auf den Parameter -p muss der sog. »sysfs device path«  folgen, d.h. in deinem Falle udevinfo -a -p /sys/block/sda. Dann solltest du auch die jeweiligen Informationen bekommen und deine udev-Rule basteln können.

          Richtig, aber irgendwie wird mitder Regel

          BUS="usb", SYSFS{vendor}="FUJIFILM", SYSFS{serial}="Y-4111^^^^^030116XFPX0002022356", NAME="%k", SYMLINK="fujicam"

          kein device /dev/fujicam erzeugt?

          Markus.

          --
          http://www.apostrophitis.at
          http://www.pithax.net
          Wenn ich ein toller Programmierer währe, könnte ich vieleicht sogar Packete nach einem gewissen Standart kompelieren...
          Vieleicht progge ich aber auch eine tolle Gallerie, die dann hoffentlich funzt.
          1. Hi!

            Welche Rechte besitzen dann z.B. der Device-Node deines CD-Brenners (z.B. in meinem Fall ls -l /dev/sr0)? Wie sieht es mit der User-/Gruppenzugehörigkeit aus?

            Also mein CDRom und der Brenner haben:
            brw-rw----  1 root cdrom 3, 64 Oct  2 14:16 /dev/hdb
            brw-rw----  1 root cdrom 3, 64 Oct  2 14:16 /dev/hdd

            Sollte also so passen.

            So schaut es bei mir ebenfalls aus. Von dem her sollte es also wirklich passen, wenn du in der Gruppe »cdrom« bist (zu überprüfen mit »id« auf der Konsole).

            udevinfo ist eigentlich ganz einfach zu bedienen, wenn man weiß wie und die Hilfe gelesen hat ;-) Auf den Parameter -p muss der sog. »sysfs device path«  folgen, d.h. in deinem Falle udevinfo -a -p /sys/block/sda. Dann solltest du auch die jeweiligen Informationen bekommen und deine udev-Rule basteln können.

            Richtig, aber irgendwie wird mitder Regel

            BUS="usb", SYSFS{vendor}="FUJIFILM", SYSFS{serial}="Y-4111^^^^^030116XFPX0002022356", NAME="%k", SYMLINK="fujicam"

            kein device /dev/fujicam erzeugt?

            Die Regel sieht ok aus, ich würde höchstens mal andere Keys probieren, z.B. nur SYSFS{vendor}, SYSFS{model} oder SYSFS{product} und möglichst wenige Bedigungen greifen lassen.
            Solltest du nun deine Kamera einstecken, sollte /dev/fujicam ein SymLink auf /dev/sda1 sein. Sollte dies nicht der Fall sein, so schaue bitte, was dir ein »cat /dev/.udevdb/block@sda« ausgibt.

            Grüße,
            Fabian St.