"Sicheres" pmount unter openSUSE 10.x/11.0
Bis einschließlich openSUSE 10.0 wurde für Wechselmedien die Kombination "subfs/submount" verwendet
https://wwwbs.informatik.htw-dresden.de/svortrag/i01/Voigt/submount.html
welche unter anderem dazu führte, daß auch in einem Runlevel ohne GUI angestöpselte USB-Sticks automatisch gemountet wurden und kein händischer Mountbefehl als root notwendig war.
Seit nun vollständig auf hal/udev gesetzt wird, ist dies nicht mehr der Fall.
Eine der vielen Lösungen, wie man auch in der Konsole als nicht-privilegierter Benutzer (Wechsel)medien einbinden kann, ist pmount,
Willkommen bei piware! - Projekte
pmount - LinuxWiki.org - Linux Wiki und Freie Software
ein Wrapper für mount, welcher z.B. bei Debian und seinen Derivaten mittlerweile weit verbreitet ist.
Obwohl dieses Programm für openSUSE nicht zum offiziellen "Lieferumfang" gehört, findet man natürlich Pakete im openSUSE Build Service.
Webpin
Die Einrichtung und Verwendung ist dabei denkbar einfach.
Nach der Installation von pmount bearbeitet man als root mit dem Editor seiner Wahl die Datei
/etc/pmount.allow
und legt fest, welche Geräte/Partitionen per pmount oder pmount-hal (eine erweiterte Form von pmount, welche mit HAL zusammenspielt) eingebunden werden dürfen.
Die Angabe erfolgt als "/dev/Devicefile", also bei einem CD-ROM Laufwerk z.B. über "/dev/cdrom" oder direkt über die Gerätedatei (in meinem Fall wäre das /dev/sr0). Das Setzen von regulären Ausdrücken oder Wildcards ist ebenfalls möglich.
Hier eine Beispieldatei:
Erlaubt sind also alle Partitionen auf den Festplatten/Usb-Sticks sda bis sdf, sowie alle optischen Geräte (/dec/cdrom, /dev/cdrecorder /dev/cdrw, /dev/dvd /dev/dvdrw) und alle Floppy Laufwerke (/dev/fd0, /dev/fd1, .....).
Das Mounten erfolgt über
wobei das entsprechende Device dann nach /media/Label eingehängt wird.
Will man also die erste Partition des USB-Sticks /dev/sdb nach /media/Usbstick einhägen, so wäre der Befehl:
oder (hal-Variante)
Das Aushängen erfolgt über den Befehl pumount:
oder
also in unserem Beispiel über:
oder
Lässt man bei pmount die Eingabe des gewünschten Labels weg, so wird eine automatische Bezeichnung verwendet, z.B. bei Partitionen auf Festplatten/USB-Sticks die Gerätebezeichnung, die Partition /dev/sdb1 wird also auf /media/sdb1 eingehängt, verwendet man jedoch pmount-hal und die entsprechende Partition hat bei der Erstellung (oder später über tune2fs&co) ein Label verpasst bekommen, so wird dieses ausgelesen und verwendet.
Hier mal ein Beispiel:
Die Rootpartition meiner Archlinux-Installation auf /dev/sda6 hat von mir das Disklabel "Archlinux" verpasst bekommen (wer wissen will, wie das geht => man tune2fs oder man reiserfstune), nun einmal pmount und pmount-hal im Vergleich.
Des Weiteren bietet pmount zusätzliche Optionen für das Einhängen, siehe hierzu:
Nun aber zum Hauptgrund für dieses HowTo, Erhöhung der Flexibilität und Sicherheit, gerade wenn man mehrere User auf seinem System hat.
Wie man sieht, ist für pmount und pumount das SUID-Bit gesetzt (das ist auch notwendig) und anhand der Zugriffsrechte darf _jeder_ Benutzer die Binaries ausführen.
Das gefiel mir ehrlicherweise gar nicht, weshalb ich auf Basis der schon vorhandenen Pakete eigene RPMs "gestrickt" habe, die ein kleines Sicherheitsfeature eingebaut bekamen.
Wie man sieht, gehören die Binaries nun nicht mehr "root:root" sondern "root[noparse]
[/noparse]mount" und die Rechte sind so gesetzt, daß ausser root nur noch User, die der Gruppe "pmount" angehören, diese verwenden können.
(Diese Gruppe wird im Übrigen vom RPM bei der Installation automatisch angelegt.)
Nach der Installation des "sicheren" pmount-Pakets müssen also die Systembenutzer, die Zugriff auf pmount haben sollen
entweder via YaST => Sicherheit und Benutzer => Benutzer und Gruppenmanagement
oder mit
der Gruppe pmount hinzugefügt werden.
Diese Einstellungen werden allerdings erst bei der nächsten Anmeldung der entsprechenden User wirksam, ein bereits eingeloggter User muss sich also einmal abmelden und dann wieder anmelden.
Und "last, but not least" hier die Pakete:
//Edit:
Mittlerweile ist pmount bei packman erhältlich (thx@drcux)
PackMan :: Informationen zum Paket pmount
deshalb wurden die Downloads gelöscht. Bitte verwendet die Pakete von packman.
Greetz,
RM
P.S. Mit herzlichem Dank an "drcux" von Packman für den Hinweis aus Sicherheitsgründen lieber eine eigene Gruppe "pmount" anzulegen statt die schon vorhandene Gruppe "disk" zu verwenden und fürs anschliessende Übernehmen des Paketes ins Angebot von Packman.
Bis einschließlich openSUSE 10.0 wurde für Wechselmedien die Kombination "subfs/submount" verwendet
https://wwwbs.informatik.htw-dresden.de/svortrag/i01/Voigt/submount.html
welche unter anderem dazu führte, daß auch in einem Runlevel ohne GUI angestöpselte USB-Sticks automatisch gemountet wurden und kein händischer Mountbefehl als root notwendig war.
Seit nun vollständig auf hal/udev gesetzt wird, ist dies nicht mehr der Fall.
Eine der vielen Lösungen, wie man auch in der Konsole als nicht-privilegierter Benutzer (Wechsel)medien einbinden kann, ist pmount,
Willkommen bei piware! - Projekte
pmount - LinuxWiki.org - Linux Wiki und Freie Software
ein Wrapper für mount, welcher z.B. bei Debian und seinen Derivaten mittlerweile weit verbreitet ist.
Obwohl dieses Programm für openSUSE nicht zum offiziellen "Lieferumfang" gehört, findet man natürlich Pakete im openSUSE Build Service.
Webpin
Die Einrichtung und Verwendung ist dabei denkbar einfach.
Nach der Installation von pmount bearbeitet man als root mit dem Editor seiner Wahl die Datei
/etc/pmount.allow
und legt fest, welche Geräte/Partitionen per pmount oder pmount-hal (eine erweiterte Form von pmount, welche mit HAL zusammenspielt) eingebunden werden dürfen.
Code:
# /etc/pmount.allow
# pmount will allow users to additionally mount all devices that are
# listed here.
Hier eine Beispieldatei:
Code:
# /etc/pmount.allow
# pmount will allow users to additionally mount all devices that are
# listed here.
/dev/sd[a-f]*
/dev/cdr*
/dev/dvd*
/dev/fd*
Das Mounten erfolgt über
Code:
pmount(-hal) /dev/Gerätedatei Label
Will man also die erste Partition des USB-Sticks /dev/sdb nach /media/Usbstick einhägen, so wäre der Befehl:
Code:
pmount /dev/sdb1 Usbstick
Code:
pmount-hal /dev/sdb1 Usbstick
Code:
pumount /dev/Gerätedatei
Code:
pumount Label
Code:
pumount /dev/sdb1
Code:
pumount Usbstick
Hier mal ein Beispiel:
Code:
ls -l /dev/disk/by-label/Archlinux
lrwxrwxrwx 1 root root 10 1. Okt 12:26 /dev/disk/by-label/Archlinux -> ../../sda6
Code:
pmount /dev/sda6
mount |grep sda6
/dev/sda6 on [B]/media/sda6[/B] type ext3 (rw,noexec,nosuid,nodev,errors=continue)
pumount /dev/sda6
pmount-hal /dev/sda6
mount |grep sda6
/dev/sda6 on[B] /media/Archlinux[/B] type ext3 (rw,noexec,nosuid,nodev,errors=continue)
Code:
pmount --help
man pmount
Code:
ls -l /usr/bin/p*mount*
-rw[B]s[/B]r-xr-x 1 root root 40344 Jun 18 21:33 /usr/bin/pmount
-rwxr-xr-x 1 root root 31884 Jun 18 21:33 /usr/bin/pmount-hal
-rw[B]s[/B]r-xr-x 1 root root 31432 Jun 18 21:33 /usr/bin/pumount
Das gefiel mir ehrlicherweise gar nicht, weshalb ich auf Basis der schon vorhandenen Pakete eigene RPMs "gestrickt" habe, die ein kleines Sicherheitsfeature eingebaut bekamen.
Code:
ls -l /usr/bin/p*mount*
-rwsr-x--- 1 root pmount 36248 2. Okt 18:04 /usr/bin/pmount
-rwxr-x--- 1 root pmount 31884 2. Okt 18:04 /usr/bin/pmount-hal
-rwsr-x--- 1 root pmount 27336 2. Okt 18:04 /usr/bin/pumount
(Diese Gruppe wird im Übrigen vom RPM bei der Installation automatisch angelegt.)
Nach der Installation des "sicheren" pmount-Pakets müssen also die Systembenutzer, die Zugriff auf pmount haben sollen
entweder via YaST => Sicherheit und Benutzer => Benutzer und Gruppenmanagement
oder mit
Code:
su
Passwort
groupmod -A [B]entsprechender_Username[/B] pmount
Diese Einstellungen werden allerdings erst bei der nächsten Anmeldung der entsprechenden User wirksam, ein bereits eingeloggter User muss sich also einmal abmelden und dann wieder anmelden.
Und "last, but not least" hier die Pakete:
//Edit:
Mittlerweile ist pmount bei packman erhältlich (thx@drcux)
PackMan :: Informationen zum Paket pmount
deshalb wurden die Downloads gelöscht. Bitte verwendet die Pakete von packman.
Greetz,
RM
P.S. Mit herzlichem Dank an "drcux" von Packman für den Hinweis aus Sicherheitsgründen lieber eine eigene Gruppe "pmount" anzulegen statt die schon vorhandene Gruppe "disk" zu verwenden und fürs anschliessende Übernehmen des Paketes ins Angebot von Packman.