Ubuntu Dokumentation

Einführung

autofs ist ein Programm zum automatischen Einhängen von Verzeichnissen auf einer bedarfsgerechten Basis. Auto-Mounts werden nur eingehängt, wenn auf sie zugegriffen wird, und werden nach einer Zeit der Inaktivität wieder ausgehängt. Aus diesem Grund spart das automatische Einhängen von NFS/Samba-Freigaben Bandbreite und bietet eine bessere Gesamtleistung im Vergleich zu statischen Einhängungen über fstab.

1.1. Kurze Anmerkung zu Begriffen

Um Verwirrung zu vermeiden, werden die folgenden Begriffe verwendet:

  • automount ist das Programm, das verwendet wird, um einen Einhängepunkt für autofs zu konfigurieren. Wenn autofs gestartet wird, wird für jede Map ein automount-Daemon gestartet.

  • Auto-mount oder auto-mounting bezieht sich auf den Prozess des automatischen Einhängens von Dateisystemen.
  • Autofs ist das Programm, das den Betrieb der Automount-Daemons steuert.

Installation

Installieren Sie das autofs-Paket, indem Sie entweder hier klicken oder das Folgende in ein Terminalfenster eingeben:

  • $ sudo apt-get install autofs

Konfiguration

autofs kann durch Bearbeiten von Konfigurationsdateien konfiguriert werden. Es gibt andere Möglichkeiten, autofs in einem Netzwerk zu konfigurieren (siehe AutofsLDAP), aber Konfigurationsdateien bieten die einfachste Einrichtung.

3.1. Die Master Map File

Die Master-Konfigurationsdatei für autofs ist standardmäßig /etc/auto.master. Wenn Sie keinen guten Grund haben, dies zu ändern, belassen Sie es bei der Standardeinstellung.

Hier ist die von Ubuntu bereitgestellte Beispieldatei:

## $Id: auto.master,v 1.4 2005/01/04 14:36:54 raven Exp $## Sample auto.master file# This is an automounter map and it has the following format# key location# For details of the format look at autofs(5).#/misc /etc/auto.misc --timeout=60#/smb /etc/auto.smb#/misc /etc/auto.misc#/net /etc/auto.net
  • Standardmäßig werden alle Zeilen mit dem Zeichen # auskommentiert.

Jede der Zeilen in auto.master beschreibt eine Einhängung und den Ort ihrer Karte. Diese Zeilen haben das folgende Format:

  • mount-point :] map 

3.1.1. Direkte und indirekte Karten

Automatenkarten können direkt oder indirekt sein. Indirekte Maps, wie die in der oben gezeigten auto.master-Datei, erstellen Einhängepunkte als Unterverzeichnisse innerhalb des Haupt-Einhängepunkts. Betrachten Sie zum Beispiel den folgenden Master-Map-Eintrag:

  • /smb /etc/auto.smb

Dieser Eintrag in auto.master weist autofs an, in /etc/auto.smb zu suchen und Einhängepunkte im Verzeichnis /smb zu erstellen.

Direkte Maps erstellen einen Mount-Point an dem in der entsprechenden Map-Datei angegebenen Pfad. Der Mount-Point-Eintrag in auto.master ist immer /-. Zum Beispiel weist die folgende Zeile autofs an, einen Einhängepunkt an der in auto.data angegebenen Stelle zu erstellen:

  • /- /etc/auto.data
  • Wenn die Map-Datei nicht mit einem vollständigen lokalen oder Netzwerkpfad angegeben wird, wird die Konfiguration des Namensdienst-Switch verwendet, um die Map zu finden, z.B.:
    /- auto.data

3.2. Map-Dateien

Wie oben erwähnt, hat jeder autofs-Mount seine eigene Map-Datei. Diese Dateien werden normalerweise nach der Konvention auto.<X> benannt, wobei <X> alles sein kann, solange es mit einem Eintrag in auto.master übereinstimmt und für einen Dateinamen gültig ist.

Map-Dateien haben das folgende Format:

  • key location

BEISPIEL: Automatisches Einhängen einer NFS-Freigabe

In diesem Howto werden wir autofs so konfigurieren, dass es eine NFS-Freigabe automatisch einhängt, indem wir eine Reihe von Konfigurationsdateien verwenden. Dieses Howto geht davon aus, dass Sie bereits mit NFS-Exporten vertraut sind und dass Sie bereits eine ordnungsgemäß funktionierende NFS-Freigabe in Ihrem Netzwerk haben. Gehen Sie auf die Seite NFS-Setup, um zu erfahren, wie Sie einen solchen Server einrichten.

4.1. Bearbeiten Sie /etc/auto.master

Der folgende Schritt erstellt einen Einhängepunkt unter /nfs und konfiguriert ihn entsprechend den Einstellungen in /etc/auto.nfs (die wir im nächsten Schritt erstellen werden).

  1. Geben Sie das Folgende in ein Terminal ein:
    $ sudo nano /etc/auto.master
  2. Fügen Sie die folgende Zeile am Ende von /etc/auto.master ein:

    /nfs /etc/auto.nfs

4.2. Erstellen Sie /etc/auto.nfs

Nun erstellen wir die Datei, die unsere Automounter-Map enthält:

  • $ sudo nano /etc/auto.nfs

Diese Datei sollte für jede NFS-Freigabe eine eigene Zeile enthalten. Das Format für eine Zeile ist {Mountpoint} {Ort}. Wenn Sie zuvor statische Einhängepunkte in /etc/fstab konfiguriert haben, kann es hilfreich sein, auf diese zu verweisen. Denken Sie daran, dass die hier angegebenen Einhängepunkte relativ zu dem in /etc/auto.master angegebenen Einhängepunkt sind.

Die folgende Zeile ist für Freigaben, die ältere Versionen von NFS verwenden (vor Version 4):

  • server server:/

Dies erzeugt einen neuen Einhängepunkt bei /nfs/server/ und hängt das NFS-Root-Verzeichnis ein, das von der Maschine exportiert wurde, deren Host-Name server ist.

4.2.1. NFSv4

Wenn Ihre NFS-Freigaben NFSv4 verwenden, müssen Sie autofs dies mitteilen. In einem solchen Fall würde die obige Zeile wie folgt aussehen:

  • server -fstype=nfs4 server:/

Der Client benötigt die gleichen Änderungen in /etc/default/nfs-common, um sich mit einem NFSv4-Server zu verbinden.

  • In /etc/default/nfs-common setzen wir:

    NEED_IDMAPD=yesNEED_GSSD=no # no is default

4.3. Statische Mounts aushängen und /etc/fstab bearbeiten

Wenn Sie zuvor die NFS-Freigaben als statische Mounts konfiguriert haben, ist es nun an der Zeit, sie auszuhängen.

  • $ sudo umount /server

Als nächstes entfernen Sie die entsprechenden Einträge in /etc/fstab (oder kommentieren sie aus).

  • #server:/ /server/ nfs defaults 0 0

4.4. Reload /etc/init.d/autofs

Nachdem Sie Ihre Änderungen eingegeben haben, führen Sie den folgenden Befehl aus, um autofs neu zu laden:

  • $ sudo service autofs reload

Wenn Sie mit einer älteren Ubuntu-Version arbeiten und das nicht funktioniert, versuchen Sie es:

  • $ sudo /etc/init.d/autofs reload

Wenn Sie in Natty arbeiten und das nicht funktioniert, versuchen Sie:

  • $ sudo /etc/init.d/autofs restart

4.5. Stellen Sie sicher, dass es funktioniert

Um auf die Freigabe zuzugreifen und zu überprüfen, ob sie richtig funktioniert, geben Sie Folgendes in eine Shell ein:

  • $ ls /nfs/server

Wenn Sie Ihre NFS-Freigabe aufgelistet sehen, herzlichen Glückwunsch! Sie haben eine funktionierende NFS-Einhängung über autofs! Wenn Sie fortgeschrittenere Informationen erfahren wollen, lesen Sie weiter.

Erweiterte Informationen

Wenn Sie nach der obigen Beispielverzeichnisstruktur ls /nfs in eine Shell eingeben, könnten Sie überrascht sein, dass nichts aufgelistet ist. Aber denken Sie daran, dass Sie auf ein Verzeichnis zugreifen müssen, bevor es automatisch gemountet wird. Um auf die Freigabe zuzugreifen, geben Sie ls /nfs/server ein. Sobald darauf zugegriffen wurde, wird Ihre Freigabe nur so lange aufgelistet, bis die Zeit abgelaufen ist. Das ist gut zu wissen, denn es könnte Ihnen Zeit ersparen, ein autofs-Problem zu diagnostizieren, das es in Wirklichkeit gar nicht gibt.

5.1. Hinweis zu /net und /smb

Diese beiden Standardkonfigurationen können für Ihre Einrichtung nützlich sein. Wenn Sie viele NFS- oder Samba-Freigaben haben, sollten Sie diese Zeilen auskommentieren. /net ermöglicht das automatische Einhängen von Dateisystemen an anderer Stelle im Netzwerk, die von NFS exportiert werden. Wenn Sie zum Beispiel einen Server namens fileserver mit einem NFS-Exportverzeichnis namens /export haben, können Sie es einhängen, indem Sie in einer Shell-Befehlszeile cd /net/fileserver/export eingeben. In einer Umgebung mit NFS-Dateiservern kann eine solche Konfiguration nützlich sein. /smb funktioniert auf die gleiche Weise, ist aber für Samba-Dateisysteme gedacht. Wenn Sie sich jedoch vor dem Zugriff auf die Samba-Freigabe authentifizieren müssen, wird automount nicht funktionieren.

5.2. Platzhalterzeichen

Angenommen, Sie haben ein Verzeichnis mit mehreren Unterverzeichnissen, die Sie einzeln automatisch mounten lassen wollen. Ein Beispiel hierfür ist das Verzeichnis /home. In diesem Fall könnte /etc/auto.master die folgende Zeile enthalten:

  • /home /etc/auto.home

Wenn Benutzer1 angemeldet ist, wollen Sie sein Home-Verzeichnis automatisch einhängen. Wenn Sie jedoch einen Einhängepunkt für das gesamte /home-Verzeichnis erstellen, werden Sie auch die Home-Verzeichnisse aller anderen Benutzer gleichzeitig einhängen und damit Bandbreite verschwenden. Eine Lösung wäre, für jedes Verzeichnis einen eigenen Eintrag zu erstellen, etwa wie folgt:

  • # /etc/auto.homeuser1 server:/home/user1user2 server:/home/user2user3 server:/home/user3

Das funktioniert, ist aber umständlich. Stattdessen können Sie Platzhalterzeichen verwenden, wie im Folgenden beschrieben:

  • * server:/home/&

Das Sternchen (*) wird anstelle des Einhängepunkts und das kaufmännische Und (&) anstelle des einzuhängenden Verzeichnisses verwendet. Weitere Einzelheiten über die Verwendung von Platzhaltern finden Sie unter Verwendung von Platzhalterzeichen als Abkürzungen in AutoFS-Maps.

Sie können auch Variablen verwenden (siehe autofs(5) man page), um Benutzer und andere Parameter zu ersetzen, damit Sie eine generische Datei für mehrere Benutzer erstellen können. Das folgende Beispiel ist eine smb-Map, die auf der Grundlage des Benutzers zuordnet, der die Freigabe mit der Variablen $USER anfordert.

* -fstype=cifs,rw,credentials=/home/$USER/.smbcredentials,iocharset=utf8,uid=$USER,gid=users,file_mode=0700,dir_mode=0700 ://server/$USERshare1 -fstype=cifs,rw,credentials=/home/$USER/.smbcredentials,iocharset=utf8,uid=$USER,gid=users ://server/share1share2 -fstype=cifs,rw,credentials=/home/$USER/.smbcredentials,iocharset=utf8,uid=$USER,gid=users ://server/share2

Mounten anderer Arten von Dateisystemen

6.1. CIFS

Wenn Sie eine CIFS-Freigabe in einer Map-Datei angeben, geben Sie -fstype=cifs an und stellen Sie dem Freigabeort einen Doppelpunkt (:) voran.

Beispiel:

mntpoint -fstype=cifs ://example.com/shrname

Beispiel: Einhängen mit Lese- und Schreibzugriff, wobei ein Benutzer und eine Gruppe als Eigentümer der Dateien angegeben werden:

mntpoint -fstype=cifs,rw,uid=myuserid,gid=mygrpid ://example.com/shrname

Beispiel: Einhängen mit Lese- und Schreibzugriff unter Angabe eines Benutzernamens und Kennworts für die Verbindung mit der Freigabe:

mntpoint -fstype=cifs,rw,username=myuser,password=mypass ://example.com/shrname

6.2. FUSE-basierte Dateisysteme

FUSE-basierte Dateisysteme werden durch Angabe von -fstype=fuse eingehängt. Der Speicherort des Dateisystems gibt die User-Space-Binärdatei an, die zum Einhängen des Dateisystems verwendet wird, gefolgt von einer Raute (#), gefolgt von dem Speicherort.

Wenn ein FUSE-Dateisystem-Speicherort in der Map-Datei angegeben wird, müssen bestimmte Zeichen, insbesondere die Raute (#) und der Doppelpunkt (:), durch einen umgekehrten Schrägstrich (\) ersetzt werden. Dem gesamten Speicherort muss ein Doppelpunkt (:) vorangestellt werden.

Da automount die Einhängung als root durchführt, ist es in der Regel notwendig, allow_other in den Einhängeoptionen anzugeben, um der Nicht-Root-Benutzerkennung den Zugriff auf die Freigabe zu ermöglichen.

6.2.1. SSHFS-Dateisystem

SSHFS ist ein FUSE-basiertes Dateisystem. In einem autofs-Mount muss der Doppelpunkt (:) nach dem Servernamen durch einen Backslash (\) ersetzt werden.

Sie sollten bereits eine passwortlose Authentifizierung über Public Key Encryption eingerichtet haben. Vergewissern Sie sich, dass Sie die Auswirkungen auf die Sicherheit verstehen, bevor Sie fortfahren.

Erinnern Sie sich, dass automount Ihr SSHFS-Dateisystem als root einhängen wird, also müssen Sie das tun:

  1. Kopieren Sie Ihren privaten Schlüssel in das Verzeichnis /root/.ssh. Vergewissern Sie sich, dass Sie die Sicherheitsaspekte dieses Vorgangs verstehen, bevor Sie fortfahren.

  2. Fügen Sie die erforderlichen Hostschlüssel zu /root/.ssh/known_hosts hinzu.

  3. Legen Sie den Benutzernamen fest, der für die Verbindung verwendet wird

Um zu testen, ob Sie Ihr SSHFS-Dateisystem als root mounten, geben Sie Folgendes ein:

sudo sshfs [email protected]:/ mountpoint

Wenn das Einhängen erfolgreich ist, ohne dass Sie nach einem Passwort gefragt werden, können Sie das Dateisystem über autofs einhängen

Beispiel:

mntpoint -fstype=fuse,allow_other :sshfs\#[email protected]\:/path/to/mount

Beispiel: Einhängen mit Lese- und Schreibzugriff, wobei ein Benutzer und eine Gruppe als Eigentümer der Dateien angegeben werden:

mntpoint -fstype=fuse,rw,uid=1000,gid=1000,allow_other :sshfs\#[email protected]\:/path/to/mount

Beachten Sie, dass bei FUSE-Mounts uid und gid numerische IDs sein müssen.

Probleme beim automatischen Einhängen beheben

Wenn Sie Probleme beim automatischen Einhängen Ihrer Dateisysteme haben, kann es nützlich sein, automount im Vordergrund auszuführen.

  1. Stoppen Sie den autofs-Daemon

    sudo service autofs stop
  2. Starten Sie automount im Vordergrund mit ausführlichen Informationen

    sudo automount -f -v
  3. Von einem anderen Terminal aus versuchen Sie, Ihre Dateisysteme einzuhängen, indem Sie Verzeichnisse in den Einhängepunkt ändern.
  4. Prüfen Sie die Ausgabe des ersten Terminals auf Hinweise, warum das Einhängen fehlgeschlagen ist oder nicht versucht wurde.

Siehe auch

  • Mount – Informationen über den Einhängeprozess und seine Konfiguration in Ubuntu.

  • Die mount man page – zu finden auf der offiziellen Ubuntu Webseite.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.