[[Vorlage(Baustelle, 30.06.2012, Max-Ulrich_Farber)]] [[Vorlage(Getestet, precise, oneiric)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Programme_starten: Starten von Programmen] [:Terminal: Ein Terminal öffnen] [:sudo: Mit Administrator-Rechten arbeiten] [:mount: Datenträger temporär einbinden (mount)] [:fstab: Datenträger statisch einbinden (fstab)] [:ln: Eine Verknüpfung zu einer Datei erstellen] }}} [[Inhaltsverzeichnis(2)]] 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 [wikipedia:dm-crypt: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] {{{#!vorlage Paketinstallation pmount }}} Das Programm kann dann sofort verwendet werden [2]. = Anwendung = == Bedingungen == Jedes Mitglied der [:Benutzer und Gruppen: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, [#pmount-und-etc-fstab 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 ([#Sperren-und-entsperren 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-Umgebunden (GUI) [:GNOME:]/[:Unity:], [:KDE:] und [:Xfce:] binden externe Datenträger standardmäßig bei Systemstart oder [wikipedia_en:hotplug: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: {{{#!vorlage Befehl 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 ([#Geraete-eindeutig-zuordnen 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 [:Labels: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: {{{#!vorlage Befehl pmount GERÄT }}} === Mountpunkt und Softlink === `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 [:ln#Symbolische-Verknuepfungen: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#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. {{{#!vorlage Tabelle <-3 tablestyle="width: 97%;" rowclass="titel"> 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: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 [:mount#Optionen:hier]. Default: "atime" bzw. "relatime" +++ `-e` `--exec` Siehe [:mount#Optionen:hier]. Default: "noexec". +++ `-t DATEISYSTEM` `--type DATEISYSTEM` Siehe [:mount#Optionen: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 [:mount#Optionen: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 [:mount#Windows-Dateisysteme: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 ([#Verschluesselte_Datentraeger s.u.]) wird die Passphrase aus der Datei "DATEI" eingelesen und nicht im Terminal erfragt. }}} === Sperren und entsperren === {{{#!vorlage Befehl 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). {{{#!vorlage Befehl 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 [:Labels: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: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl 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 {{{#!vorlage Befehl 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. {{{#!vorlage Hinweis Es gibt auch Hilfsprogramme, die Geräte mittels [:HAL:] identifizieren und zuordnen (z.B. Ivman und Halevt). Weil HAL als "deprecated" gilt, bemüht sich Ubuntu seit der [:Lucid:Version 10.04], ganz ohne HAL auszukommen. Deshalb werden diese Tools hier nicht mehr beschrieben. }}} == 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 {{{#!vorlage 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: {{{#!vorlage Paketinstallation dconf-tools, ab Ubuntu 11.04 }}} gibt man über [[Vorlage(Tasten, Alt)]] [[Vorlage(Tasten, 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#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 [:Automount#Einbinden-ueber-Startprogramme: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`). = Links = ==Intern== * [:Automount:]: Datenträger und Netzwerk-Freigaben automatisch einbinden. * [:Externe Laufwerke statisch einbinden:] * [:NTFS-3G:]: Der für das Dateisystem NTFS verwendete Dateisystem-Treiber. * [:Windows-Partitionen einbinden:] * [: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. ==Extern== * [http://manpages.ubuntu.com/manpages/lucid/man1/pmount.1.html Ubuntu Manpage: pmount] {en} #tag: System, Datenträger