Ubuntu 12.04 Precise Pangolin
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.
pmount kann direkt aus den Quellen installiert werden [1]
pmount
mit apturl
Paketliste zum Kopieren:
sudo apt-get install pmount
sudo aptitude install pmount
Das Programm kann dann sofort verwendet werden [2].
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.
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.
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.
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.
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.
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. |
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.
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.
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
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)
mit apturl
Paketliste zum Kopieren:
sudo apt-get install dconf-tools
sudo aptitude install 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.
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.
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.
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
).
Automount: Datenträger und Netzwerk-Freigaben automatisch einbinden.
NTFS-3G: Der für das Dateisystem NTFS verwendete Dateisystem-Treiber.
MS-Windows Integration: Hinweise zum Parallel-Betrieb von Linux und Windows.
Daten verschlüsseln: Übersicht über Verfahren zur Datenverschlüsselung.
LUKS: Das Standardverfahren zur Festplattenverschlüsselung unter Linux.
Diese Revision wurde am 4. Juni 2013 20:44 von frustschieber erstellt.