/etc/exports
e /etc/exports.d/
, elencano le directory che vengono rese disponibili sulla rete (esportate). Per ogni condivisione NFS l'accesso è garantito solo alla lista di macchine fornita. Un controllo degli accessi più accurato può essere ottenuto con qualche opzione. La sintassi di questi file è piuttosto semplice:
/directory/da/condividere macchina1(opzione1,opzione2,...) macchina2(...) ...
fsid=0
oppure fsid=root
.
*.falcot.com
o un intervallo di indirizzi IP come 192.168.0.0/255.255.255.0
o 192.168.0.0/24
.
ro
). L'opzione rw
permette l'accesso in lettura e scrittura. I client NFS si connettono tipicamente da una porta riservata a root (in altre parole inferiore a 1024): questa restrizione può essere sospesa con l'opzione insecure
(l'opzione secure
è implicita ma può essere resa esplicita, se necessario, per rendere le cose più chiare).
sync
); questo comportamento può essere disabilitato con l'opzione async
. La scrittura asincrona può aumentare un po' le prestazioni, ma diminuisce l'affidabilità poiché c'è il rischio di perdere dati nel caso in cui il server subisca un crash tra la conferma di scrittura e la reale scrittura sul disco. Poiché il valore predefinito è cambiato recentemente (rispetto al valore storico di NFS), si raccomanda di rendere esplicita questa impostazione.
nobody
. Questo comportamento equivale ad utilizzare l'opzione root_squash
abilitata di default. L'opzione no_root_squash
, che disabilita questo comportamento, è rischiosa e dovrebbe essere usata solo in ambienti sicuri. Se tutti gli utenti devono essere visti come nobody
, allora usare all_squash
. Le opzioni anonuid=uid
e anongid=gid
permettono di specificare un altro utente fittizio da utilizzare al posto di UID/GID 65534 (che corrisponde all'utente nobody
ed al gruppo nogroup
).
sec
per indicare il livello di protezione desiderato: sec=sys
è l'impostazione predefinita senza particolari caratteristiche di sicurezza, sec=krb5
abilita solo l'autenticazione, sec=krb5i
aggiunge protezione di integrità, e sec=krb5p
è il livello più completo che comprende la tutela della privacy (con crittografia dei dati). Per questo lavoro bisogna lavorare alla configurazione di Kerberos (questo servizio non è coperto da questo libro).
mount
e al file /etc/fstab
.
Esempio 11.20. Condivisione NFS nel file /etc/fstab
arrakis.internal.falcot.com:/shared /srv/shared nfs4 rw,nosuid 0 0
/shared/
dal server arrakis
nella directory locale /srv/shared/
. È richiesto l'accesso in lettura e scrittura (da qui il parametro rw
). L'opzione nosuid
è una misura di protezione che cancella qualsiasi bit setuid
o setgid
dai programmi memorizzati sulla condivisione. Se la condivisione NFS è destinata alla sola memorizzazione di documenti, un'altra opzione consigliata è noexec
, che impedisce l'esecuzione dei programmi memorizzati sulla condivisione. Si noti che sul server, la directory shared
non è una directory di primo livello ma si trova sotto la root export NFSv4 (ad esempio /export/shared
).