Creare una condivisione con NFS su Ubuntu
Per creare una condivisione via NFS ( Network File System ) lato server ( ovvero sulla macchina che ha i contenuti da condividere ) installare il pacchetto nfs-kernel-server:
| 
					 1  | 
						sudo apt-get install nfs-kernel-server  | 
					
A questo punto basta andare a configurare le condivisioni:
| 
					 1  | 
						sudo nano /etc/exports  | 
					
Un esempio di configurazione:
| 
					 1 2 3  | 
						/opt/dir1    192.168.1.20(rw,no_root_squash,no_subtree_check) /opt/dir2    computer1(rw,all_squash,anonuid=150,anongid=100) /opt/dir3    *(ro,insecure,all_squash)  | 
					
La prima parte è la cartella da condividere, la seconda sono i parametri della condivisione ( qui sotto spiegati ):
- host a cui dare il permesso, può essere un indirizzo IP singolo ( 192.168.1.20 ), un nome host ( computer1 ), una rete ( 192.168.0.0/24 ) o aperto a tutti ( * ); importante non lasciare spazi tra il parametro host e le parentesi altrimenti prende come un parametro *
 - rw/ro: stanno per permessi lettura/scrittura ( rw ) o sola lettura ( ro )
 - subtree_check/no_subtree_check: sinceramente non sono riuscito a capire bene bene l’utilità effettiva del parametro subtree_check, quindi fino a che non ne capisco il reale uso pratico metto no_subtree_check che pare dare un guadagno di prestazioni
 - no_root_squash: dice di non mappare l’utente root remoto ( ID/GID 0 ) come utente anonimo, il suo opposto root_squash invece forza l’utente root remoto ad essere trattato come utente anonimo in maniera da non dargli gli stessi diritti sui file dell’utente root locale
 - all_squash: a differenza di root_squash, all_squash considera qualunque utente remoto come utente anonimo locale
 - anonuid/anongid: dice al server con quale utente e gruppo locali devono essere trattati gli utenti/gruppi anonimi dalla condivisione
 - insecure: dice al server di usare un numero di porta maggiore di quelle riservate ( > 1024 )
 
Un ulteriore sicurezza la si può ottenere usando il pacchetto portmap:
| 
					 1  | 
						sudo apt-get install portmap  | 
					
E configurando il file hosts.deny per indicare gli host da negare:
| 
					 1  | 
						sudo nano /etc/hosts.deny  | 
					
Dove scriviamo ad esempio:
| 
					 1  | 
						portmap : ALL  | 
					
E configurando poi anche hosts.allow per indicare invece gli host permessi:
| 
					 1  | 
						sudo nano /etc/hosts.allow  | 
					
Dove scriviamo ad esempio:
| 
					 1  | 
						portmap : 192.168.1.20  | 
					
Sulla macchina client invece basta installare il pacchetto nfs-common:
| 
					 1  | 
						sudo apt-get install nfs-common  | 
					
Creiamo una cartella vuota per il mount della condivisione:
| 
					 1  | 
						sudo mkdir /media/remote  | 
					
Impostiamo ora i dati di mount automatico nel file fstab:
| 
					 1  | 
						sudo nano /etc/fstab  | 
					
E aggiungiamo la riga:
| 
					 1  | 
						192.168.1.10:/opt/dir1    /media/remote    nfs    _netdev,defaults    0    0  | 
					
Dove 192.168.1.10 è l’indirizzo IP del server.
Ricarichiamo ora senza fare il reboot della macchina:
| 
					 1  | 
						sudo mount -a  | 
					
Se non ci sono stati errori ora possiamo accedere alla cartella remota come fosse locale, possiamo anche controllare lo stato del mount con df.
I link usati da riferimento