{"id":541,"date":"2011-03-11T12:32:52","date_gmt":"2011-03-11T10:32:52","guid":{"rendered":"http:\/\/blog.sfsoft.it\/?p=541"},"modified":"2013-05-01T17:03:17","modified_gmt":"2013-05-01T15:03:17","slug":"creare-una-condivisione-con-nfs-su-ubuntu","status":"publish","type":"post","link":"http:\/\/www.sfsoft.it\/blog\/2011\/03\/11\/creare-una-condivisione-con-nfs-su-ubuntu\/","title":{"rendered":"Creare una condivisione con NFS su Ubuntu"},"content":{"rendered":"<p>Per creare una condivisione via NFS ( Network File System ) lato <strong>server<\/strong> ( ovvero sulla macchina che ha i contenuti da condividere ) installare il pacchetto <em>nfs-kernel-server<\/em>:<\/p>\n<pre lang=\"bash\">sudo apt-get install nfs-kernel-server<\/pre>\n<p>A questo punto basta andare a configurare le condivisioni:<\/p>\n<pre lang=\"bash\">sudo nano \/etc\/exports<\/pre>\n<p>Un esempio di configurazione:<\/p>\n<pre lang=\"bash\">\/opt\/dir1    192.168.1.20(rw,no_root_squash,no_subtree_check)\r\n\/opt\/dir2    computer1(rw,all_squash,anonuid=150,anongid=100)\r\n\/opt\/dir3    *(ro,insecure,all_squash)<\/pre>\n<p>La prima parte \u00e8 la cartella da condividere, la seconda sono i parametri della condivisione ( qui sotto spiegati ):<\/p>\n<ul>\n<li><em>host<\/em> a cui dare il permesso, pu\u00f2 essere un indirizzo IP singolo ( 192.168.1.20 ), un nome <em>host<\/em> ( computer1 ), una rete ( 192.168.0.0\/24 ) o aperto a tutti ( * ); importante non lasciare spazi tra il parametro <em>host<\/em> e le parentesi altrimenti prende come un parametro *<\/li>\n<li><em>rw<\/em>\/<em>ro<\/em>: stanno per permessi lettura\/scrittura ( <em>rw<\/em> ) o sola lettura ( <em>ro<\/em> )<\/li>\n<li><em>subtree_check<\/em>\/<em>no_subtree_check<\/em>: sinceramente non sono riuscito a capire bene bene l&#8217;utilit\u00e0 effettiva del parametro <em>subtree_check<\/em>, quindi fino a che non ne capisco il reale uso pratico metto <em>no_subtree_check<\/em> che pare dare un guadagno di prestazioni<\/li>\n<li><em>no_root_squash<\/em>: dice di non mappare l&#8217;utente <em>root<\/em> remoto ( ID\/GID 0 ) come utente anonimo, il suo opposto <em>root_squash<\/em> invece forza l&#8217;utente <em>root<\/em> remoto ad essere trattato come utente anonimo in maniera da non dargli gli stessi diritti sui file dell&#8217;utente <em>root<\/em> locale<\/li>\n<li><em>all_squash<\/em>: a differenza di <em>root_squash<\/em>, <em>all_squash<\/em> considera qualunque utente remoto come utente anonimo locale<\/li>\n<li><em>anonuid<\/em>\/<em>anongid<\/em>: dice al server con quale utente e gruppo locali devono essere trattati gli utenti\/gruppi anonimi dalla condivisione<\/li>\n<li><em>insecure<\/em>: dice al server di usare un numero di porta maggiore di quelle riservate ( &gt; 1024 )<\/li>\n<\/ul>\n<p>Un ulteriore sicurezza la si pu\u00f2 ottenere usando il pacchetto <em>portmap<\/em>:<em> <\/em><\/p>\n<pre lang=\"bash\">sudo apt-get install portmap<\/pre>\n<p>E configurando il file <em>hosts.deny<\/em> per indicare gli <em>host<\/em> da negare:<\/p>\n<pre lang=\"bash\">sudo nano \/etc\/hosts.deny<\/pre>\n<p>Dove scriviamo ad esempio:<\/p>\n<pre lang=\"bash\">portmap : ALL<\/pre>\n<p>E configurando poi anche <em>hosts.allow<\/em> per indicare invece gli <em>host<\/em> permessi:<em><br \/>\n<\/em><\/p>\n<pre lang=\"bash\">sudo nano \/etc\/hosts.allow<\/pre>\n<p>Dove scriviamo ad esempio:<\/p>\n<pre lang=\"bash\">portmap : 192.168.1.20<\/pre>\n<p>Sulla macchina <strong>client<\/strong> invece basta installare il pacchetto <em>nfs-common<\/em>:<\/p>\n<pre lang=\"bash\">sudo apt-get install nfs-common<\/pre>\n<p>Creiamo una cartella vuota per il <em>mount<\/em> della condivisione:<\/p>\n<pre lang=\"bash\">sudo mkdir \/media\/remote<\/pre>\n<p>Impostiamo ora i dati di <em>mount<\/em> automatico nel file <em>fstab<\/em>:<\/p>\n<pre lang=\"bash\">sudo nano \/etc\/fstab<\/pre>\n<p>E aggiungiamo la riga:<\/p>\n<pre lang=\"bash\">192.168.1.10:\/opt\/dir1    \/media\/remote    nfs    _netdev,defaults    0    0<\/pre>\n<p>Dove 192.168.1.10 \u00e8 l&#8217;indirizzo IP del <em>server<\/em>.<\/p>\n<p>Ricarichiamo ora senza fare il <em>reboot<\/em> della macchina:<\/p>\n<pre lang=\"bash\">sudo mount -a<\/pre>\n<p>Se non ci sono stati errori ora possiamo accedere alla cartella remota come fosse locale, possiamo anche controllare lo stato del <em>mount<\/em> con <em>df<\/em>.<\/p>\n<p>I link usati da riferimento<\/p>\n<p><a href=\"http:\/\/linux.die.net\/man\/5\/exports\" target=\"_blank\">http:\/\/linux.die.net\/man\/5\/exports<\/a><\/p>\n<p><a href=\"http:\/\/wiki.ubuntu-it.org\/Server\/Nfs\" target=\"_blank\">http:\/\/wiki.ubuntu-it.org\/Server\/Nfs<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>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: sudo apt-get install nfs-kernel-server A questo punto basta andare a configurare le condivisioni: sudo nano \/etc\/exports Un esempio di configurazione: \/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 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[15,3,23],"tags":[16,8,120,5],"_links":{"self":[{"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/posts\/541"}],"collection":[{"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/comments?post=541"}],"version-history":[{"count":19,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/posts\/541\/revisions"}],"predecessor-version":[{"id":557,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/posts\/541\/revisions\/557"}],"wp:attachment":[{"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/media?parent=541"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/categories?post=541"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/tags?post=541"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}