NFS
Sivu sisältää päällekkäistä tietoa artikkelin NFSv4 kanssa ja sivut tulisi yhdistää. Yhdistämisestä on keskusteltu artikkelien keskustelusivuilta.
NFS eli Network Filesystem on Sun Microsystemsin kehittämä menetelmä tiedostojärjestelmien käyttämiseen UNIX-järjestelmien välillä. Linuxissa vaihtoehtoina on käyttäjäpuolen ja kernel-puolen nfs-palvelimet.
Palvelin
Palomuuri
Oletuksena NFS käyttää porttia 2049, joten avaa kyseinen portti palomuurista lisäämällä tiedostoon /etc/sysconfig/iptables rivi:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT
Tämän jälkeen iptables on käynnistettävä uudelleen:
service iptables restart
tai
/etc/init.d/iptables restart
/etc/exports
/etc/exports -tiedoston avulla määritellään, mitkä paikalliset tiedostojärjestelmät on mahdollista liittää muualla sijaitsevien koneiden tiedostojärjestelmiin. Tiedoston syntaksi on yksinkertainen:
/hakemisto sallitut_koneet(liitosparametrit)
Esimerkiksi:
/varasto 192.168.0.0/255.255.255.0(rw,sync)
Sallisi /varasto -niminen paikallinen hakemiston liittämisen verkosta 192.168.0.0/255.255.255.0 (eli koneet, joiden ip on välillä 192.168.0.0 - 192.168.0.255 saavat tehdä liitoksen). Kun /etc/exports -tiedosto on kirjoitettu halutunlaiseksi, käynnistetään nfs-palvelin (vaikkapa /etc/init.d/nfs-kernel-server start). Liitosparametrit:
- rw = Luku- ja kirjoitusoikeudet
- ro = Vain lukuoikeudet
- no_root_squash = Oletuksena kun asiakaskoneen root-käyttäjä hakee tiedostoja, käsitellään ne nobody-käyttäjänä palvelimella. Jos no_root_squash on käytössä, on asiakaskoneen root-käyttäjällä samat oikeudet jakoon kuin palvelinkoneen root-käyttäjällä.
- no_subtree_check = Jos vain osa tallennusmediasta (esim. levyasema) on jaettu, "subtree checking" tarkistaa että asiakaskoneelta pyydetty tiedosto on osa jaettua hakemistoa. no_subtree_checkin nopeuttaa toimintaa jos koko tallennusmedia on jaettu.
- sync = Pakottaa paikallisen koneen synkronoimaan tiedostojärjestelmän levylle aina, kun nfs saa kirjoitusoperaation valmiiksi.
Kun tiedostoa on muutettu, otetaan muutokset käyttöön komennolla
exportfs -rv
/etc/hosts.allow ja /etc/hosts.deny
/etc/hosts.allow on tiedosto, jossa listataan koneet joilla on oikeus yhdistää palvelimelle ja vastaavasti denyssä listataan ne, joilla ko. oikeutta ei ole. Oletuksena kaikilla koneilla paitsi hosts.denyssä listatuilla on yleensä oikeus yhdistämiseen.
Jos systeemi on kuitenkin toisinpäin, seuraavat rivit /etc/hosts.allowissa sallivat nfs:n käytön tietyille koneille:
portmap: ip,ip2 lockd: ip,ip2 rquotad: ip,ip2 mountd: ip,ip2 statd: ip,ip2
Samalla tavalla voi hosts.denyssä estää tiettyjä koneita käyttämästä nfs:ää.
NFS-palvelun käynnistäminen
NFS:ää käytettäessä on oltava käynnistettynä seuraavat palvelut:
- nfs (tai nfs-common)
- portmap
- nfslock
- rpcidmapd
Palvelun käynnistäminen onnistuu yleensä komennolla /etc/init.d/palvelunnimi, esimerkiksi
/etc/init.d/nfs start
Joissain jakeluissa toimii myös
service nfs start
Käynnissä olevat palvelut voi tarkistaa komennolla
rpcinfo -p
Tarkempia tietoja mm. palveluiden käyttämistä porteista saa komennolla
netstat -tupa
Jaossa olevat hakemistot voi tarkistaa komennolla
showmount -e
Liittäminen asiakaskoneessa
Aluksi asiakaskoneesa on käynnistettävä portmap-palvelu esimerkiksi komennolla
/etc/init.d/portmap start
tai
service portmap start
NFS-jaot ovat siitä mukavia, että ne voidaan liittää kuin mikä tahansa muukin tiedostojärjestelmä. Tiedostojärjestelmän tyyppi on nfs ja siihen viitataan muodossa palvelin:/polku, esimerkiksi palvelimelta, jonka ip on 192.168.0.1 liitettäisiin hakemisto /varasto seuraavasti:
mount -tnfs 192.168.0.1:/varasto /mnt/varasto
Vastaavasti liitoksen voi tehdä /etc/fstabissa seuraavasti:
192.168.0.2:/varasto /mnt/varasto nfs user,rw,auto 0 0
Kirjoitusoikeudet
Pelkkä tiedostojärjestelmän liittäminen kirjoitusoikeuksin ei anna tavallisille käyttäjille kirjoitusoikeuksia, vaan ne vaativat että sekä asiakas- että palvelinkoneessa on saman UID:n (tunnistenumeron) ja nimen omaava käyttäjä, joka on merkitty tiedostojen omistajaksi.
Tietyn tunnistenumeron omaavan käyttäjän voi luoda useradd-komennolla seuraavasti:
useradd -u numero nimi
Jonka jälkeen salasana asetetaan komennolla passwd:
passwd nimi