Thema geschlossen
Ergebnis 1 bis 1 von 1

Thema: "Sicheres" pmount unter openSUSE 10.x/11.0

  1. #1
    Administrator Avatar von Rain_Maker
    Registriert seit
    06.02.2006
    Beiträge
    5,459

    Standard "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.../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.
    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:

    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*
    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

    Code:
    pmount(-hal) /dev/Gerätedatei Label
    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:

    Code:
    pmount /dev/sdb1 Usbstick
    oder (hal-Variante)

    Code:
    pmount-hal /dev/sdb1 Usbstick
    Das Aushängen erfolgt über den Befehl pumount:

    Code:
    pumount /dev/Gerätedatei
    oder

    Code:
    pumount Label
    also in unserem Beispiel über:

    Code:
    pumount /dev/sdb1
    oder

    Code:
    pumount Usbstick
    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:

    Code:
    ls -l /dev/disk/by-label/Archlinux
    lrwxrwxrwx 1 root root 10  1. Okt 12:26 /dev/disk/by-label/Archlinux -> ../../sda6
    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.

    Code:
    pmount /dev/sda6
    
    mount |grep sda6
    /dev/sda6 on /media/sda6 type ext3 (rw,noexec,nosuid,nodev,errors=continue)
    
    pumount /dev/sda6
    
    pmount-hal /dev/sda6
    
    mount |grep sda6
    /dev/sda6 on /media/Archlinux type ext3 (rw,noexec,nosuid,nodev,errors=continue)
    Des Weiteren bietet pmount zusätzliche Optionen für das Einhängen, siehe hierzu:

    Code:
    pmount --help
    
    man pmount
    Nun aber zum Hauptgrund für dieses HowTo, Erhöhung der Flexibilität und Sicherheit, gerade wenn man mehrere User auf seinem System hat.

    Code:
    ls -l /usr/bin/p*mount*
    
    -rwsr-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
    -rwsr-xr-x    1 root    root            31432 Jun 18 21:33 /usr/bin/pumount
    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.

    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
    Wie man sieht, gehören die Binaries nun nicht mehr "root:root" sondern "root:pmount" 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

    Code:
    su
    
    Passwort
    
    groupmod -A entsprechender_Username pmount
    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.
    Geändert von Rain_Maker (03.01.2009 um 16:13 Uhr)
    "Programming today is a race between software engineers striving to build better & bigger idiot-proof programs and the Universe trying to produce bigger & better idiots. So far, the Universe is winning." (Rick Cook)

    Dies ist ein _öffentliches_ Supportforum, keinerlei Support per PN, EMail oder Instant Messenger.

    openSUSE 11.4 - 3.3.X-desktop - fluxbox 1.3.2

    For Windows-Problems - Reboot / For Linux-Problems - BE ROOT!
    (==> Und hier das wirkliche "Geheimnis meines Erfolges")

Thema geschlossen

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Ähnliche Themen

  1. (Gelöst) AR5007EG unter openSUSE 11.0
    Von rainer065 im Forum SuSE Mobile-Hardware
    Antworten: 6
    Letzter Beitrag: 26.12.2008, 13:19
  2. Ntfs hdd's mounten unter Opensuse 10.3
    Von [d]Tod im Forum SuSE Treiber
    Antworten: 0
    Letzter Beitrag: 14.03.2008, 13:04
  3. Scanner Lide 20 unter openSuse 10.3
    Von OliverB im Forum SuSE Treiber
    Antworten: 16
    Letzter Beitrag: 22.10.2007, 02:02
  4. VMware Server unter openSUSE 10.2
    Von ZuluTom im Forum Linux-Howtos
    Antworten: 5
    Letzter Beitrag: 02.05.2007, 06:29
  5. Ordnerfreigaben unter openSUSE
    Von Cougar im Forum SuSE System konfigurieren
    Antworten: 1
    Letzter Beitrag: 24.01.2007, 19:47

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87