Ubuntu Documentatie

Inleiding

autofs is een programma voor het automatisch mounten van directories op een as-needed basis. Autofs wordt alleen aangekoppeld als er toegang tot wordt verkregen, en wordt na een periode van inactiviteit weer losgekoppeld. Hierdoor bespaart het automatisch mounten van NFS/Samba shares bandbreedte en biedt het betere prestaties in vergelijking met statische mounts via fstab.

1.1. Korte notitie over termen

Om verwarring te voorkomen, zullen de volgende terminologieën worden gebruikt:

  • automount is het programma dat wordt gebruikt om een koppelpunt voor autofs te configureren. Wanneer autofs wordt gestart, wordt voor elke map een automount-daemon gespawnd.

  • Automontage of automontage verwijst naar het proces van het automatisch koppelen van bestandssystemen.
  • autofs is het programma dat de werking van de automount-daemons regelt.

Installatie

Installeer het autofs-pakket door hier te klikken of door het volgende in een terminalvenster in te voeren:

  • $ sudo apt-get install autofs

Configuratie

autofs kan worden geconfigureerd door configuratiebestanden te bewerken. Er zijn andere manieren om autofs op een netwerk te configureren (zie AutofsLDAP), maar configuratiebestanden bieden de eenvoudigste opzet.

3.1. Het hoofdconfiguratiebestand

Het hoofdconfiguratiebestand voor autofs is standaard /etc/auto.master. Tenzij u een goede reden hebt om dit te veranderen, laat het dan als standaard staan.

Hier is het voorbeeldbestand dat door Ubuntu wordt geleverd:

## $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
  • Bestandaard worden alle regels van commentaar voorzien door het # teken te gebruiken.

Elke regel in auto.master beschrijft een koppeling en de locatie van de bijbehorende map. Deze regels hebben het volgende formaat:

  • mount-point :] map 

3.1.1. Directe en indirecte kaarten

automount kaarten kunnen direct of indirect zijn. Indirecte maps, zoals die in het auto.master bestand hierboven, maken mount punten aan als subdirectories binnen het hoofd mount-punt. Bijvoorbeeld, beschouw de volgende master map entry:

  • /smb /etc/auto.smb

Deze entry in auto.master vertelt autofs om in /etc/auto.smb te kijken en mount-punten aan te maken in de /smb directory.

Directe maps maken een mount-punt op het pad dat in het betreffende map-bestand is opgegeven. Het mount-punt in auto.master is altijd /-. Bijvoorbeeld, de volgende regel instrueert autofs om een mount-punt te maken op de plaats gespecificeerd in auto.data:

  • /- /etc/auto.data
  • Als het kaartbestand niet wordt opgegeven met een volledig lokaal of netwerkpad, wordt de configuratie van de naamdienstschakelaar gebruikt om de kaart te lokaliseren, bijv:
    /- auto.data

3.2. Map-bestanden

Zoals hierboven aangegeven, heeft elke autofs mount zijn eigen map-bestand. Deze bestanden hebben meestal de conventie auto.<X>, waarbij <X> alles kan zijn zolang het overeenkomt met een entry in auto.master en geldig is voor een bestands-naam.

Map bestanden hebben het volgende formaat:

  • key location

VOORBEELD: Automatisch mounten van een NFS share

In deze howto, zullen we autofs configureren om automatisch een NFS share te mounten, gebruik makend van een set configuratie bestanden. Deze howto gaat er van uit dat je al bekend bent met NFS exports, en dat je al een goed werkende NFS share op je netwerk hebt. Ga naar de NFS Instellingen pagina om te leren hoe je zo’n server instelt.

4.1. Bewerk /etc/auto.master

De volgende stap maakt een koppelpunt aan op /nfs en configureert het volgens de instellingen gespecificeerd in /etc/auto.nfs (die we in de volgende stap zullen maken).

  1. Typ het volgende in een terminal:
    $ sudo nano /etc/auto.master
  2. Voeg de volgende regel toe aan het einde van /etc/auto.master:

    /nfs /etc/auto.nfs

4.2. Maak /etc/auto.nfs

Nu zullen we het bestand maken dat onze automounter map bevat:

  • $ sudo nano /etc/auto.nfs

Dit bestand moet een aparte regel bevatten voor elke NFS share. Het formaat van een regel is {mount point} {locatie}. Als u eerder statische mounts hebt geconfigureerd in /etc/fstab, kan het nuttig zijn om daarnaar te verwijzen. Onthoud dat de koppelpunten die hier worden opgegeven relatief zijn ten opzichte van het koppelpunt dat in /etc/auto.master staat.

De volgende regel is voor shares die oudere versies van NFS gebruiken (ouder dan versie 4):

  • server server:/

Dit maakt een nieuw koppelpunt aan op /nfs/server/ en koppelt de NFS hoofddirectory aan die wordt geëxporteerd door de machine waarvan de hostnaam server is.

4.2.1. NFSv4

Als uw NFS shares NFSv4 gebruiken, moet u autofs daarover inlichten. In zo’n geval zou de bovenstaande regel er als volgt uitzien:

  • server -fstype=nfs4 server:/

De client moet dezelfde wijzigingen aanbrengen in /etc/default/nfs-common om verbinding te kunnen maken met een NFSv4-server.

  • In /etc/default/nfs-common stellen we in:

    NEED_IDMAPD=yesNEED_GSSD=no # no is default

4.3. Unmount static mounts and edit /etc/fstab

Als u de NFS shares eerder als static mounts hebt geconfigureerd, is nu het moment aangebroken om ze te unmounten.

  • $ sudo umount /server

Volgende stappen zijn het verwijderen (of uitcommentariëren) van hun respectieve vermeldingen in /etc/fstab.

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

4.4. Herlaad /etc/init.d/autofs

Nadat u uw wijzigingen hebt ingevoerd, voert u het volgende commando uit om autofs opnieuw te laden:

  • $ sudo service autofs reload

Als u op een oudere ubuntu-versie werkt, en dat werkt niet, probeer dan:

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

Als u in Natty werkt, en dat werkt niet, probeer dan:

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

4.5. Controleer of het werkt

Om toegang te krijgen tot de share en te controleren of deze goed werkt, voert u het volgende in een commandoregel in:

  • $ ls /nfs/server

Als u uw NFS share in de lijst ziet staan, gefeliciteerd! U hebt een werkende NFS mount via autofs! Als u wat meer geavanceerde informatie wilt leren, lees dan verder.

Geavanceerde informatie

Volgens de voorbeeld directory structuur hierboven, als u ls /nfs in een commandoregel zou typen, zou u verbaasd kunnen zijn niets in de lijst te zien. Maar onthoud dat u een directory moet benaderen voordat deze automatisch wordt gemount. Om de share te openen, typ ls /nfs/server. Als het eenmaal benaderd is, zal je share alleen in de lijst staan tot de time-out. Dit is goed om in gedachten te houden, omdat het je tijd kan besparen om een diagnose te stellen van een autofs probleem dat er niet echt is.

5.1. Opmerking over /net en /smb

Deze twee standaard configuraties kunnen nuttig zijn voor uw set-up. Als u veel NFS of Samba shares hebt, kunt u deze regels misschien beter uitcommentariëren. /net laat het automatisch mounten toe van bestandssystemen elders op het netwerk die door NFS geëxporteerd worden. Als u bijvoorbeeld een server hebt met de naam fileserver met een NFS exportmap genaamd /export, dan kunt u die mounten door in een commandoregel in de commandoregel cd /net/fileserver/export te typen. In een omgeving met NFS bestandsservers kan zo’n configuratie nuttig zijn. /smb werkt op dezelfde manier, maar dan voor Samba-bestandssystemen. Echter, als je moet authenticeren voordat je de Samba share benadert, zal automount niet werken.

5.2. Wildcard karakters

Stel dat je een directory hebt met een aantal subdirectories die je individueel wilt laten automounten. Een voorbeeld hiervan is de /home directory, in welk geval /etc/auto.master de volgende regel zou kunnen bevatten:

  • /home /etc/auto.home

Als user1 is ingelogd, dan wilt u zijn home directory automatisch mounten. Als u echter een koppelpunt maakt voor de hele map /home, koppelt u ook de homedirectory’s van alle andere gebruikers tegelijk aan, waardoor bandbreedte verloren gaat. Een oplossing hiervoor zou zijn om voor elke directory aparte entries aan te maken, als volgt:

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

Dit werkt, maar is omslachtig. In plaats daarvan kunt u wild-card tekens gebruiken, als volgt:

  • * server:/home/&

Het sterretje (*) wordt gebruikt in plaats van het koppelpunt en de ampersand (&) in plaats van de map die moet worden gekoppeld. Voor meer details over het gebruik van wild-cards, zie Wild-card karakters gebruiken als snelkoppelingen in AutoFS mappen.

U kunt ook variabelen gebruiken (zie autofs(5) man page) om gebruikers en andere parameters te vervangen om generieke bestanden voor meerdere gebruikers te kunnen aanmaken. Voorbeeld hieronder is smb map die mapt op basis van gebruiker die vraagt naar de share met behulp van $USER variabele.

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

Mounting Other Types of Files Systems

6.1. CIFS

Wanneer u een CIFS-share in een mapbestand specificeert, specificeert u -fstype=cifs en laat u de locatie van de share voorafgaan door een dubbele punt (:).

Voorbeeld:

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

Voorbeeld: Mount read-write, specificeer een gebruiker en groep als eigenaar van de bestanden:

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

Voorbeeld: Mount read-write, specificeer een gebruikersnaam en wachtwoord om verbinding te maken met de share:

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

6.2. FUSE gebaseerde bestandssystemen

FUSE gebaseerde bestandssystemen worden gemount door -fstype=fuse op te geven. De locatie van het bestandssysteem specificeert de gebruiker-ruimte binary gebruikt om het bestandssysteem te mounten, gevolgd door een hash (#), gevolgd door de locatie.

Bij het specificeren van een FUSE bestandssysteem locatie in map bestand, moeten bepaalde karakters, met name de hash (#) en de dubbele punt (:), worden ge-escaped door een backslash (\). De hele locatie moet worden voorafgegaan door een dubbele punt (:).

Omdat automount het mounten als root uitvoert, is het meestal nodig om allow_other bij de mount opties op te geven om je niet-root userid toegang te geven tot de share.

6.2.1. SSHFS bestandssysteem

SSHFS is een op FUSE gebaseerd bestandssysteem. In een autofs mount, moet de dubbele punt (:) achter de server naam worden ge-escaped door een backslash (#).

U zou al wachtwoord-loze authenticatie via publieke sleutel encryptie moeten hebben ingesteld. Zorg ervoor dat u de veiligheidsimplicaties hiervan begrijpt voordat u verder gaat.

Denk eraan, automount zal uw SSHFS bestandssysteem als root mounten, dus u moet:

  1. Kopieer uw private sleutel naar de /root/.ssh directory. Zorg ervoor dat u de veiligheidsimplicaties hiervan begrijpt voordat u verder gaat.

  2. Voeg de benodigde hostcodes toe aan /root/.ssh/known_hosts.

  3. Specificeer de gebruikersnaam die wordt gebruikt om verbinding te maken

Om te testen of u uw SSHFS-bestandssysteem als root kunt mounten, heeft u het volgende uitgegeven:

sudo sshfs [email protected]:/ mountpoint

Als het mounten lukt zonder u om een wachtwoord te vragen, bent u klaar om het bestandssysteem via autofs te mounten

Voorbeeld:

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

Voorbeeld: Mount read-write, specificeer een gebruiker en groep als eigenaar van de bestanden:

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

Merk op dat voor FUSE mounts, uid en gid numerieke ids moeten zijn.

Problemen met automatisch mounten oplossen

Als u problemen hebt met het automatisch mounten van uw bestandssystemen, kan het nuttig zijn om automount op de voorgrond uit te voeren.

  1. Stop de autofs daemon

    sudo service autofs stop
  2. Run automount in de voorgrond met verbose informatie

    sudo automount -f -v
  3. Probeer vanuit een andere terminal uw bestandssystemen te mounten door directories in het mountpoint te veranderen.
  4. Kijk naar de uitvoer van de eerste terminal voor aanwijzingen waarom het aankoppelen mislukte of niet werd geprobeerd.

Zie ook

  • Mount – Informatie over het koppelproces en de configuratie ervan in Ubuntu.

  • De mount man page – te vinden op de officiële Ubuntu-website.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.