ubuntuusers.de

pmount

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.

Normalerweise erfordert das Einbinden ("Mounten") [5] von Datenträgern Administrator-Rechte [4]. Sollen auch gewöhnliche Benutzer Datenträger mit dem Befehl mount einbinden können, muss dieser durch entsprechende Einträge in der Datei /etc/fstab für jeden dieser Datenträger einzeln dafür "freigeschaltet" werden. Mit dem Tool pmount ("policy mount") können auch gewöhnliche Benutzer alle blockorientierten externen Datenträger (also Floppy-Disks, Festplatten, USB-Sticks, SD-Karten, CD- und DVD-Laufwerke) bzw. die auf diesen befindlichen Partitionen ohne Administrator-Rechte einbinden, ohne dass dafür vorher besondere Vorkehrungen zu treffen sind. Außerdem lassen sich mit pmount auch verschlüsselte Datenträger einbinden, sofern diese DM-Verschlüsselung und LUKS Metadaten verwenden.

Die einzubindenden Datenträger oder Partitionen werden vielfach auch allgemein mit "Gerät" (engl. "device") bezeichnet.

Installation

pmount kann direkt aus den Quellen installiert werden [1]

  • pmount

Paketliste zum Kopieren:

sudo apt-get install pmount 

Oder mit apturl installieren, Link: apt://pmount

Das Programm kann dann sofort verwendet werden [2].

Anwendung

Bedingungen

Jedes Mitglied der Gruppe "plugdev" (im Normalfall sind das alle Benutzer) kann mit pmount ein Gerät ohne Administrator-Rechte [4] einbinden, wenn folgende Bedingungen erfüllt sind:

  • Das Gerät ist block-orientiert und in /dev/ eingetragen.

  • Für das Gerät besteht kein Eintrag in /etc/fstab (was in diesem Fall geschieht, siehe unten).

  • Das Gerät ist noch nicht eingebunden, d.h es besteht dafür noch kein Eintrag in /etc/mtab und /proc/mounts.

  • Wenn der Mountpunkt bereits existiert, muss er ein leerer Ordner sein, unter dem auch noch kein anderes Gerät gemountet ist.

  • Es handelt sich entweder um ein entfernbares Gerät (z.B. USB, FireWire, MMC ...), oder das Gerät muss in der Datei /etc/pmount.allow aufgeführt sein.

  • Das Gerät darf nicht gesperrt sein (s.u.).

Insbesondere bedeutet dies, dass pmount nicht zum Einbinden von Netzwerk-Freigaben geeignet ist.

Die Datei /etc/pmount.allow

In dieser Datei können mit Administrator-Rechten [4] weitere blockorientierte Geräte eingetragen werden, die zusätzlich noch mittels pmount eingebunden werden dürfen. Für jedes Gerät ist eine eigene Zeile vorzusehen. Zusammenfassungen von der Art /dev/sda[123] sind jedoch zulässig.

Externe Datenträger nicht mittels GUI einbinden

Die Desktop-Umgebungen (DE) GNOME/Unity, KDE und Xfce binden externe Datenträger standardmäßig bei Systemstart oder Hotplug automatisch ein. Es kann jedoch trotzdem Gründe geben, dies lieber selbst vorzunehmen:

  • Es steht keine geeignete GUI zur Verfügung (z.B. Ubuntu Server).

  • Man möchte vielleicht vermeiden, dass immer alle angeschlossenen externen Datenträger automatisch eingebunden werden.

  • Man möchte einzelne Datenträger mit anderen Optionen einbinden.

  • Man möchte für einzelne Anwender einen individuellen "Automount" zusammenstellen.

  • Man möchte externe Datenträger oder Teile davon im Netzwerk freigeben und benötigt deshalb eine sichere Identifikation derselben.

  • Man verwendet verschlüsselte Partitionen und möchte diese nicht vor dem Einbinden von Hand entschlüsseln.

Syntax

Die Syntax (Struktur) einer Befehlszeile mit pmount ist denkbar einfach:

pmount OPTIONEN GERÄT LABEL 

GERÄT bezeichnet die Geräteadresse ("Node") für das einzuhängende Gerät. Normalerweise ist dies der vom Kernel vorgenommene Eintrag in dem Geräteverzeichnis /dev/. Es kann aber auch ein mit einer udev-Regel erstellter Softlink zu diesem sein (s.u.). Die zulässigen Angaben für OPTIONEN sind weiter unten aufgeführt. LABEL bezeichnet hier einen beliebig wählbaren Namen, unter dem das Gerät eingebunden wird. Dieser kann, muss aber nicht mit dem offiziellen Label des Gerätes übereinstimmen.

OPTIONEN und LABEL brauchen nur bei Bedarf angegeben zu werden, sodass sich die Befehlszeile im einfachsten Fall auf folgende Angaben reduziert:

pmount GERÄT 

pmount bindet das GERÄT normalerweise an einem Mountpunkt unter /media/ ein (siehe man pmount). Wenn LABEL gegeben ist, wird als Mountpunkt /media/LABEL verwendet, ansonsten /media/GERÄT. Möchte man den Mountpunkt an einer anderen Stelle der Verzeichnisstruktur haben, muss LABEL als kompletter Pfad angegeben werden. Wenn der Mountpunkt nicht existiert, wird er automatisch erstellt.

Im Interesse einer übersichtlichen Verzeichnisstruktur ist es empfehlenswert, den Mountpunkt unter /media/ zu belassen und nötigenfalls einen Softlink zu diesem einzurichten.

Besitz- und Zugriffsrechte

  • Bei UNIX- (Linux-) Dateisystemen (z.B. ext4, ReiserFS) wird auch auf externen Datenträgern eine Rechte-Verwaltung eingerichtet. Da der Eigentümer und die Gruppe immer über die UID und GID identifiziert werden, arbeitet die Linux-Rechteverwaltung auf einem anderen Rechner nur dann korrekt, wenn dort für Benutzer und Gruppen gleichen UID und GID verwendet werden

  • Beim Dateisystem VFAT (FAT-12, FAT-16 und FAT-32) gibt es auf dem Datenträger keine Verwaltung von Besitz- und Zugriffsrechten; diese werden auf jedem Rechner unabhängig simuliert, an dem der Datenträger eingesteckt ist. Es gibt deshalb beim Umstecken hinsichtlich UID und GID nichts zu beachten.

  • Das Dateisystem NTFS wird standardmäßig gleich wie VFAT behandelt. Befindet sich aber auf dem USB-Datenträger eine (versteckte) Datei .NTFS-3G/UserMapping, so richtet der verwendete Dateisystem-Treiber ntfs-3g dort automatisch eine echte Rechteverwaltung wie auf einem UNIX-Dateisystem ein. Dann gelten beim Wechsel auf einen anderen Linux-Rechner auch die gleichen Regeln für die UID und GID. Konkurrierende Mount-Parameter werden dann nicht beachtet. Siehe dazu NTFS-3G (Abschnitt „Rechte-auf-externen-Partitionen“).

Parameter und Optionen

pmount unterstützt nur einen Teil der Optionen von mount. Die Bezeichnungen dafür stimmen nicht durchweg mit denen bei mount überein.

Optionen
Kurzform Langform Bedeutung
-r --read-only Nur mit Leserecht einbinden
-w --read-write Mit Lese- und Schreibrecht einbinden. Wenn weder -r noch -w angegeben ist, wählt der Kernel je nach Dateisystem eine geeignete Option.
-s --sync Schreibvorgänge erfolgen ohne Pufferung (siehe mount Optionen). Vermindert die Gefahr von Datenverlust bei unbedachtem Entfernen (Ausstecken) des Datenträgers. Sehr umfangreiche Dateien werden dabei jedoch in viele einzelne Schreibvorgänge aufgespalten. Weil bei Flash-Datenträgern (USB-Sticks, SD-Karten) die Anzahl der Schreibvorgänge begrenzt ist, sollte man von dieser Option nur mit Bedacht Gebrauch machen!
-A --noatime Siehe hier. Default: "atime" bzw. "relatime"
-e --exec Siehe hier. Default: "noexec".
-t DATEISYSTEM --type DATEISYSTEM Siehe hier. Gängige Dateisysteme werden automatisch erkannt und brauchen keine Angabe. Da dabei (im Gegensatz zu mount) nicht auf das Dateisystem zugegriffen wird, ist die automatische Erkennung hier zeitaufwendig, und deshalb eine Angabe des Dateisystems sinnvoll.
-c ZEICHENSATZ --charset ZEICHENSATZ Siehe hier. Default ist utf8. Deshalb ist eine Angabe meist nicht nötig.
-u MASKE --umask MASKE Simulierte Zugriffsrechte bei Windows-Dateisystemen VFAT und NTFS (siehe hier). Für "uid" und "gid" werden die Werte des mountenden Benutzers eingesetzt; abweichende Angaben sind bei pmount nicht möglich.
(keine) --dmask MASKE Wie --umask, jedoch nur für Ordner.
(keine) --fmask MASKE Wie --umask, jedoch nur für Dateien.
-p DATEI --passphrase DATEI Bei verschlüsselten Datenträgern (s.u.) wird die Passphrase aus der Datei "DATEI" eingelesen und nicht im Terminal erfragt.

Sperren und entsperren

pmount --lock GERÄT PID 

Sperrt weitere pmount-Aufrufe für GERÄT bis dieses wieder entsperrt wird. PID gibt die ID des Prozesses an, der die Sperre hält. Dies ermöglicht das Sperren eines Gerätes von mehreren unabhängigen Prozessen (Sperren von nichtexistierenden Prozessen werden gelöscht, bevor eine Einbindung versucht wird).

pmount --unlock GERÄT PID 

Hebt die Sperre auf GERÄT durch den Prozess PID wieder auf.

Geräte eindeutig zuordnen

Pmount identifiziert einzubindende Geräte ausschließlich über ihre Geräteadressen ("Nodes") in der Gerätedatei /dev; eine direkte Identifikation über das Label oder die UUID ist nicht möglich. Die im Geräteverzeichnis /dev/ eingetragenen Gerätenamen werden den Geräten vom Kernel zugeteilt und können je nach der Reihenfolge, in der die Geräte angeschlossen bzw. erkannt werden, verschieden sein.

Dieses Problem umgeht man, wenn man den einzelnen Datenträgern oder Partitionen mit einer udev-Regel feste Symlinks zu ihren Nodes zuordnet. Hierzu muss man zuerst eindeutige, in einer udev-Regel verwertbare Merkmale des betreffenden Geräts ermitteln. Bei USB-Geräten genügt es meistens, in einem Terminal [3] den Befehl lsusb auszuführen. Man erhält dann eine Ausgabe folgender Art:

NAME@Desktop-PC:~$ lsusb
.......
Bus 001 Device 002: ID 04a9:2214 Canon, Inc. CanoScan LiDE 80
Bus 002 Device 002: ID 15a4:9016 Afatech Technologies, Inc. AF9015 DVB-T USB2.0 stick
Bus 001 Device 003: ID 0781:5151 SanDisk Corp. Cruzer Micro Flash Drive
Bus 002 Device 003: ID 0471:0828 Philips (or NXP) 

Die beiden letzten Zeilen betreffen die eingesteckten Datenträger, einen USB-Stick und eine externe Festplatte. Die beiden auf ID folgenden vierziffrigen Zahlen sind die Hersteller-Kennung idVendor und die Gerätekennung idProduct. Gewöhnlich genügen diese beiden Angaben, um die USB-Geräte eindeutig zu identifizieren.

Nun muss man im Ordner /etc/udev/rules.d/ eine Regel-Datei anlegen. Hierzu sind Administrator-Rechte nötig. Der Dateiname muss mit .rules enden, z.B. pmount.rules. Für den oben identifizierten USB-Stick könnte diese dann so lauten:

# SanDisk Corp. Cruzer Micro Flash Drive
ATTRS{idVendor}=="0781", ATTRS{idProduct}=="5151", SYMLINK="Sandisk-Stick"

Der angegebene Symlink wird im Geräteordner /dev/ angelegt und deutet stets auf den gerade gültigen Node dieses Datenträgers. Er kann anstatt des Nodes mit pmount angesprochen werden:

pmount -t vfat Sandisk-Stick 

Sollte dies zur Identifikation eines Gerätes einmal nicht ausreichen (z.B. wenn gleichzeitig zwei identische Geräte eingesteckt sind), dann erhält man über

udevadm info -a -p `udevadm info -q path -n /dev/sdb1` 

eine sehr umfangreiche Auflistung aller Attribute, die sich in einer udev-Regel mehr oder weniger gut zur Identifikation des Gerätes mit dem Node /dev/sdb1 eignen. Falls vorhanden, ist die Seriennummer ATTRS{serial} immer eine gute Wahl.

Datenträger aushängen

Weil ja für Geräte, die mit pmount eingebunden wurden, kein Eintrag in /etc/fstab vorhanden ist, kann man diese auch nicht als gewöhnlicher Benutzer mittels umount wieder aushängen. Möglich ist dies jedoch mit dem Befehl

pumount GERÄT 

Automount der GUI unterbinden

Wenn man pmount verwenden will, dann dürfen die Geräte nicht vorher schon eingebunden sein. Es ist lästig, über die GUI automatisch eingebundene Geräte immer vorher von Hand auszuhängen. Deshalb wird man in diesem Falle das automatische Mounten durch die GUI gerne deaktivieren. In GNOME/Unity geschieht dies am einfachsten mit dem Tool "dconf-editor". Nach der Installation des Pakets:

  • dconf-tools (ab Ubuntu 11.04)

Paketliste zum Kopieren:

sudo apt-get install dconf-tools 

Oder mit apturl installieren, Link: apt://dconf-tools

gibt man über Alt F2 den Befehl dconf-editor ein. Dann navigiert man zum Eintrag "org → gnome → desktop → media.handling" und verändert dort die Einstellungen für "automount" und optional auch für "automount-open". Näheres (auch für KDE und Xfce) siehe Automount (Abschnitt „Automount-deaktivieren“).

Automount individualisieren

Weil pmount weder Administrator-Rechte [4] noch Einträge in /etc/fstab benötigt, eignet es sich besonders gut zum Erstellen individueller Automount-Skripte, die für den jeweiligen Benutzer unter "Startprogramme" eingetragen werden. Näheres ist hier beschrieben.

pmount und /etc/fstab

Eigentlich sollte für Geräte, die mittels pmount eingebunden werden, kein Eintrag in /etc/fstab vorhanden sein. Ist dies trotzdem einmal der Fall, so geschieht beim Aufruf von pmount Folgendes:

Falls das Gerät bereits eingebunden ist, nimmt pmount dies anhand der Dateien /etc/mtab oder /proc/mounts zur Kenntnis und mountet das Gerät nicht noch einmal an anderer Stelle. Sollte aber für das Gerät ein Eintrag in /etc/fstab mit der Option noauto bestehen, oder war das Gerät noch nicht verfügbar, als fstab abgearbeitet wurde, dann ist das Gerät noch nicht eingebunden. Der Befehl pmount bewirkt in diesem Fall, dass der Befehl mount [4] mit dem in fstab angegebenen Mountpunkt und den dort eingetragenen Optionen mit der Identität des jeweils eingeloggten Benutzers ausgeführt wird. Vom fstab-Eintrag abweichende Optionen im Befehl pmount werden dabei ignoriert.

Verschlüsselte Datenträger

Moderne Linux-Dateimanager wie Nautilus, Dolphin oder Thunar erkennen verschlüsselte LUKS-Partitionen. Sie fragen dann interaktiv nach dem Passwort und binden anschließend die Partition als externes Gerät ein. Das Passwort kann jeder Benutzer in seinem persönlichen "Schlüsselbund" hinterlegen und so die wiederholte Abfrage vermeiden.

Dies ist in gleicher Weise auch mit pmount möglich. Weil externe Datenträger wie z.B. USB-Sticks aber oft nur dazu verschlüsselt werden, dass bei einem etwaigen Verlust oder Diebstahl nicht jeder den Inhalt auf irgend einem fremden Rechner auslesen kann, ist auf dem eigenen Rechner ein besonderer Schutz des Passworts oft gar nicht beabsichtigt. Deshalb kann man das Passwort bzw. die Passphrase dort in einer Textdatei ablegen, die pmount dann anstatt der interaktiven Abfrage einfach einliest (s.o., Option --passphrase).

Intern

Extern

Diese Revision wurde am 9. Juli 2018 19:18 von Beforge erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Datenträger, System