Documentazione di Ubuntu

Introduzione

autofs è un programma per montare automaticamente le directory in base alle necessità. Gli auto-montaggi sono montati solo quando vi si accede, e sono smontati dopo un periodo di inattività. A causa di questo, il montaggio automatico delle condivisioni NFS/Samba conserva la larghezza di banda e offre migliori prestazioni generali rispetto ai montaggi statici tramite fstab.

1.1. Nota rapida sui termini

Per evitare confusione, verranno usate le seguenti terminologie:

  • automount è il programma usato per configurare un punto di montaggio per autofs. Quando autofs viene avviato, viene generato un demone di automount per ogni mappa.

  • Auto-mount o auto-mounting si riferisce al processo di montaggio automatico dei filesystem.
  • autofs è il programma che controlla il funzionamento dei demoni di automount.

Installazione

Installare il pacchetto autofs cliccando qui o inserendo quanto segue in una finestra di terminale:

  • $ sudo apt-get install autofs

Configurazione

autofs può essere configurato modificando i file di configurazione. Ci sono altri modi per configurare autofs su una rete (vedi AutofsLDAP), ma i file di configurazione forniscono la configurazione più semplice.

3.1. Il file di configurazione principale

Il file di configurazione principale per autofs è /etc/auto.master per default. A meno che tu non abbia una buona ragione per cambiarlo, lascialo come predefinito.

Ecco il file di esempio fornito da Ubuntu:

## $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
  • Di default, tutte le linee sono commentate usando il carattere #.

Ogni riga di auto.master descrive un supporto e la posizione della sua mappa. Queste linee hanno il seguente formato:

  • mount-point :] map 

3.1.1. Mappe dirette e indirette

le mappe di automontaggio possono essere dirette o indirette. Le mappe indirette, come quelle nel file auto.master mostrato sopra, creano punti di montaggio come sottodirectory all’interno del punto di montaggio principale. Per esempio, considerate la seguente voce di mappa master:

  • /smb /etc/auto.smb

Questa voce in auto.master dice ad autofs di guardare in /etc/auto.smb e creare punti di mount nella directory /smb.

Le mappe dirette creano un punto di montaggio nel percorso specificato nel relativo file di mappa. La voce del punto di mount in auto.master è sempre /-. Per esempio, la seguente linea istruisce autofs a creare un punto di montaggio nel posto specificato in auto.data:

  • /- /etc/auto.data
  • Se il file della mappa non è specificato usando un percorso locale o di rete completo, la configurazione del Name Service Switch sarà usata per localizzare la mappa, per esempio:
    /- auto.data

3.2. File di mappa

Come indicato sopra, ogni supporto autofs ha il suo file di mappa. Questi file sono solitamente nominati usando la convenzione auto.<X>, dove <X> può essere qualsiasi cosa purché corrisponda a una voce in auto.master e sia valida per un nome di file.

I file di mappa hanno il seguente formato:

  • key location

ESEMPIO: Montaggio automatico di una condivisione NFS

In questo howto, configureremo autofs per montare automaticamente una condivisione NFS, usando un set di file di configurazione. Questo howto presuppone che tu abbia già familiarità con le esportazioni NFS e che tu abbia già una condivisione NFS correttamente funzionante sulla tua rete. Vai alla pagina di configurazione NFS per imparare come impostare un tale server.

4.1. Modifica /etc/auto.master

Il seguente passo crea un punto di mount in /nfs e lo configura secondo le impostazioni specificate in /etc/auto.nfs (che creeremo nel prossimo passo).

  1. Scrivete quanto segue in un terminale:
    $ sudo nano /etc/auto.master
  2. Aggiungi la seguente linea alla fine di /etc/auto.master:

    /nfs /etc/auto.nfs

4.2. Creare /etc/auto.nfs

Ora creeremo il file che contiene la nostra mappa di automounter:

  • $ sudo nano /etc/auto.nfs

Questo file dovrebbe contenere una linea separata per ogni condivisione NFS. Il formato di una riga è {mount point} {locazione}. Se avete precedentemente configurato dei mount statici in /etc/fstab, può essere utile fare riferimento a quelli. Ricorda, i punti di montaggio specificati qui saranno relativi al punto di montaggio dato in /etc/auto.master.

La seguente linea è per le condivisioni che usano vecchie versioni di NFS (prima della versione 4):

  • server server:/

Questo crea un nuovo punto di montaggio a /nfs/server/ e monta la directory radice NFS esportata dalla macchina il cui host-name è server.

4.2.1. NFSv4

Se le tue condivisioni NFS usano NFSv4, devi dirlo ad autofs. In tal caso, la linea di cui sopra dovrebbe apparire come segue:

  • server -fstype=nfs4 server:/

Il client ha bisogno delle stesse modifiche a /etc/default/nfs-common per connettersi a un server NFSv4.

  • In /etc/default/nfs-common abbiamo impostato:

    NEED_IDMAPD=yesNEED_GSSD=no # no is default

4.3. Smontare i supporti statici e modificare /etc/fstab

Se avete precedentemente configurato le condivisioni NFS come supporti statici, ora è il momento di smontarle.

  • $ sudo umount /server

Poi, rimuovi (o commenta) le rispettive voci in /etc/fstab.

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

4.4. Ricaricare /etc/init.d/autofs

Dopo aver inserito le modifiche, eseguite il seguente comando per ricaricare autofs:

  • $ sudo service autofs reload

Se lavori su una vecchia versione di ubuntu, e questo non funziona prova:

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

Se si lavora in Natty, e questo non funziona provare:

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

4.5. Assicuratevi che funzioni

Per accedere alla condivisione e verificare che funzioni correttamente, inserite quanto segue in una shell:

  • $ ls /nfs/server

Se vedi la tua condivisione NFS elencata, congratulazioni! Avete un montaggio NFS funzionante tramite autofs! Se vuoi imparare qualche informazione più avanzata, continua a leggere.

Informazioni avanzate

Seguendo l’esempio della struttura di directory di cui sopra, se dovessi inserire ls /nfs in una shell, potresti essere sorpreso di non vedere nulla elencato. Ma ricordate che è necessario accedere a una directory prima che sia montata automaticamente. Per accedere alla condivisione, digitate ls /nfs/server. Una volta che è stato effettuato l’accesso, la vostra condivisione sarà elencata solo fino al suo time out. Questo è bene tenerlo a mente, in quanto potrebbe farvi risparmiare tempo nella diagnosi di un problema di autofs che in realtà non c’è.

5.1. Nota su /net e /smb

Queste due configurazioni predefinite possono essere utili per la vostra configurazione. Se hai molte condivisioni NFS o Samba, potresti voler scommentare queste linee. /net abilita l’auto-montaggio dei file system altrove sulla rete che sono esportati da NFS. Per esempio, se hai un server chiamato fileserver con una directory di esportazione NFS chiamata /export, puoi montarla digitando in una riga di comando della shell cd /net/fileserver/export. In un ambiente con file server NFS, una tale configurazione può essere utile. /smb funziona allo stesso modo ma è per i file system Samba. Tuttavia, se hai bisogno di autenticarti prima di accedere alla condivisione Samba, automount non funzionerà.

5.2. Caratteri jolly

Supponiamo che tu abbia una directory con un certo numero di sottodirectory che vuoi far montare automaticamente individualmente. Un esempio di questo è la directory /home, nel qual caso /etc/auto.master potrebbe contenere la seguente linea:

  • /home /etc/auto.home

Se l’utente1 è connesso, vorrete montare automaticamente la sua directory home. Tuttavia, se create un punto di montaggio per l’intera directory /home, monterete anche le directory home di ogni altro utente allo stesso tempo, sprecando così banda. Una soluzione a questo problema sarebbe quella di creare voci separate per ogni directory, come segue:

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

Questo funziona, ma è ingombrante. Invece, puoi usare i caratteri jolly, come segue:

  • * server:/home/&

L’asterisco (*) è usato al posto del punto di montaggio e l’ampersand (&) al posto della directory da montare. Per maggiori dettagli sull’uso dei caratteri jolly si veda Usare i caratteri jolly come scorciatoie nelle mappe AutoFS.

Si possono anche usare variabili (vedere la pagina man di autofs(5)) per sostituire gli utenti e altri parametri per essere in grado di creare file generici per più utenti. L’esempio qui sotto è una mappa smb che mappa in base all’utente che chiede la condivisione usando la variabile $USER.

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

Montaggio di altri tipi di file system

6.1. CIFS

Quando si specifica una condivisione CIFS in un file di mappa, specificare -fstype=cifs e far precedere la posizione della condivisione da due punti (:).

Esempio:

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

Esempio: Montare in lettura-scrittura, specificando un utente e un gruppo per possedere i file:

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

Esempio: Montare in lettura-scrittura, specificando un nome utente e una password da usare per connettersi alla condivisione:

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

6.2. File system basati su FUSE

I file system basati su FUSE sono montati specificando -fstype=fuse. La posizione del file system specifica il binario dello spazio utente usato per montare il file system, seguito da un hash (#), seguito dalla posizione.

Quando si specifica la locazione di un file system FUSE nel file di mappa, alcuni caratteri, in particolare l’hash (#) e i due punti (:), devono essere evasi da una barra rovesciata (\). L’intera posizione deve essere preceduta da due punti (:).

Siccome automount esegue il montaggio come root, di solito è necessario specificare allow_other nelle opzioni di montaggio per permettere al vostro userid non root di accedere alla condivisione.

6.2.1. File system SSHFS

SSHFS è un file system basato su FUSE. In un montaggio autofs, i due punti (:) che seguono il nome del server devono essere evasi con un backslash (\).

Dovresti aver già impostato l’autenticazione senza password tramite crittografia a chiave pubblica. Assicuratevi di aver compreso le implicazioni di sicurezza di questo prima di procedere.

Ricordate che automount monterà il vostro file-system SSHFS come root, quindi è necessario:

  1. Copiate la vostra chiave privata nella directory /root/.ssh. Assicuratevi di aver compreso le implicazioni di sicurezza di questo prima di procedere.

  2. Aggiungi le chiavi host necessarie a /root/.ssh/known_hosts.

  3. Specifica il nome utente usato per connettersi

Per testare il montaggio del tuo file system SSHFS come root emetti quanto segue:

sudo sshfs [email protected]:/ mountpoint

Se il montaggio riesce senza che vi venga richiesta la password, siete pronti a montare il file system tramite autofs

Esempio:

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

Esempio: Montare in lettura-scrittura, specificando un utente e un gruppo per possedere i file:

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

Nota che per i montaggi FUSE, uid e gid devono essere id numerici.

Debugare i problemi di montaggio automatico

Se hai problemi con il montaggio automatico dei tuoi file system, può essere utile eseguire automount in primo piano.

  1. Fermate il demone autofs

    sudo service autofs stop
  2. Eseguite automount in primo piano con informazioni verbose

    sudo automount -f -v
  3. Da un altro terminale, provate a montare i vostri file system cambiando le directory nel mountpoint.
  4. Controlla l’output del primo terminale per indizi sul perché il montaggio è fallito o non è stato tentato.

Vedi anche

  • Mount – Informazioni sul processo di montaggio e la sua configurazione in Ubuntu.

  • La pagina man di mount – ospitata sul sito ufficiale di Ubuntu.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.