Fedora/NFSv4

Linux.fista
Versio hetkellä 20. maaliskuuta 2007 kello 18.10 – tehnyt Heikki (keskustelu | muokkaukset) (ihmeelliset merkit pois)
Siirry navigaatioon Siirry hakuun

Sivu sisältää päällekkäistä tietoa artikkelin NFS kanssa ja sivut tulisi yhdistää. Yhdistämisestä on keskusteltu artikkelien keskustelusivuilta.


Hyvä opas löytyy osoitteesta http://www.vanemery.com/Linux/NFSv4/NFSv4-no-rpcsec.html

NFS käyttää mm. seuraavia konfiguraatiotiedostoja ja skriptejä:

/etc/fstab - asiakaskoneessa 
/etc/exports - palvelimessa 
/etc/auto.master – asiakaskoneessa 
/etc/sysconfig/nfs - palvelimessa 
/etc/idmapd.conf – asiakkaassa ja palvelimessa 
/etc/gssapi_mech.conf - asiakkaassa ja palvelimessa 
/etc/init.d/portmap - asiakkaassa ja palvelimessa 
/etc/init.d/nfs - palvelimessa
/etc/init.d/rpcidmapd - asiakkaassa ja palvelimessa 


Oletuksena käytetään 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 

Käynnistä palomuuri uudestaan muutosten jälkeen:

service iptables restart

Suojaa portmapper lisäämällä /etc/hosts.allow tiedostoon:

portmap : 127. : ALLOW
portmap : ALL : DENY

Luo nfs-määrityksiä sisältävä tiedosto:

touch /etc/sysconfig/nfs

Lisää kys. tiedostoon rivit:

# Muuta tähän "yes", jos haluat Kerberos 5 autentikoinnin

SECURE_NFS="no"

# NFS prosessien määrä

RPCNFSDCOUNT=8

Luo jaettavat kansiot:

mkdir /home/jako1
mkdir /home/jako2

Luo jako1 ja jako2 kansioon tekstitiedostot testaamista varten ja kirjoita niihin jotain sisältöä.

touch /home/jako1/testi1.txt
touch /home/jako2/testi2.txt

Käynnistä tarvittavat palvelut (portmap, rpcidmapd, nfslock ja nfs)

service portmap start
service rpcidmapd start
service nfslock start
service nfs start

Voit tarkistaa nfs:ään liittyvät palvelut komennolla:

rpcinfo -p

sekä niihin liittyviä portteja komennolla:

netstat -tupa


Asiakkaan puoli:

Suojaa portmapper:

portmap : 127. : ALLOW
portmap : ALL : DENY

Luo liitospaikat:

mkdir -m 755 /mnt/nfsjako1
mkdir -m 755 /mnt/nfsjako2

Käynnistä tarvittavat palvelut:

service portmap start
service rpcidmapd start


Vain luku -liitos

Palvelimessa

muokkaa /etc/exports tiedostoa:

/home/jako1 vastaanottavan.koneen.ip.osoite(ro,fsid=0,insecure,no_subtree_check,sync,anonuid=65534,anongid=65534)

Otetaan muutokset käyttöön:

exportfs -rv

Voit nähdä jaon parametrit komennolla:

exportfs -v

Jaetut hakemistot näet myös komennolla:

showmount -e

Asiakkaassa

Liittäminen tapahtuu mount komennolla (irroittaminen umount). Mount-komento sisältää useita tarkenteita, katso lisää man mount komennolla.

o 
options ro(read-only)
intr

Mahdollistaa nfs-kutsun peruuttamisen kun palvelin ei vastaa Liitä /home/jako1 oman koneesi /mnt/nfsjako1 hakemistoon komennolla:

mount -t nfs4 -o ro,intr serverin_ip:/ /mnt/nfsjako1

Siirry liittämääsi hakemistoon:

cd /mnt/nfsjako1

Tarkista sisältö:

ls

Yritä kirjoittaa hakemistoon:

touch jeejee.txt   (aiheuttaa virheen koska vain luku oikeudet)
cd (poistu /mnt/nfsjako1 hakemistosta, jotta voit irrottaa liitoksen)
umount /mnt/nfsjako1

Kirjoitusoikeudet sisältävä liitos

Palvelimessa

Muutetaan ensimmäiseksi jaettavan hakeiston oikeuksia komennolla:

chmod 1777 /home/nfsjako2

Eli asetetaan kaikille kaikki oikeudet ja sen lisäksi sticky bit. Hakemistoon asetettu sticky bit tarkoittaa että vain tiedoston omistaja voi poistaa tiedoston kyseisestä hakemistosta.

Lisää /etc/exports tiedostoon rivi (ja kommentoi aiempi):

/home/jako2 vastaanottavan.koneen.ip.osoite(rw,fsid=0,insecure,no_subtree_check,sync,anonuid=65534,anongig=65534)

Otetaan muutokset käyttöön:

exportfs -rv

Asiakkaassa

mount -t nfs4 -o rw,intr serverin_ip:/ /mnt/nfsjako2>

Siirry liittämääsi hakemistoon:

cd /mnt/nfsjako2

Yritä kirjoittaa hakemistoon:

touch jeejee.txt

Kirjoittaminen siis onnistuu asiakaskoneesta roottina ja tavallisena käyttäjänä, mutta poistaminen ja vain roottina tehtyjen tiedostojen (asiakaskoneen root ei ole palvelinkoneen root!) onnistuu vain rootilta.

Asiakas- ja palvelinkoneessa tulee siis olla saman nimen ja uid:n omaavat käyttäjät, jotta kyseinen menettely olisi sujuvaa (NIS tai LDAP ollessa käytössä asia onkin jo kunnossa). Voit luoda käyttäjän sekä palvelimeen että asiakaskoneeseen komennolla:

useradd -u uidnro username

Luo sekä palvelimeen nfsuser1 niminen käyttäjä uid:llä 600:

useradd -u 600 nfsuser1
passwd nfsuser1

Tämän lisäksi molempien koneiden tulee kuulua samaan domainiin. Muuta /etc/idmapd.conf tiedostoon toimialueeksi sama kuin tulevaan asiakkaaseen. Domain = sukunimesi.jee

Käynnistä rpcidmapd uudestaan

service rpcidmapd restart

Siirry nfsuser1 käyttäjäksi asiakaskoneessa komennolla:

su nfsuser1

Luo tiedosto /mnt/nfsjako2 hakemistoon ja poista se:

touch /mnt/nfsjako2/poistettava.txt
rm /mnt/nfsjako2/poistettava.txt
cd (poistu /mnt/nfsjako2 hakemistosta, jotta voit irrottaa liitoksen)
umount /mnt/nfsjako2

Automaattinen liitos

Lisää asiakaskoneen /etc/fstab tiedostoon rivi:

serverin_ip:/ 	/mnt/nfsjako2		nfs4	rw,hard,intr,proto=tcp,port=2049,auto 	0 0

Liitä asiakaskoneessa niinkuin fstab tiedostossa esitetty komennolla:

mount -v /mnt/nfsjako2

Irroita liitos:

umount -v /mnt/nfsjako2

Useamman yhtäaikaisen nfsv4-jaon ja liitoksen tekeminen

Palvelimen jakamat jaot näkyvät yhtenä isona tiedostojärjestelmänä, mutta voit jakaa ja liittää useita hakemistoja mount --bind komennon avulla.

Palvelimessa

Luo hakemisto /home/jako ja siirrä aiemmin tehdyt jako1 ja jako2 sen alle.

Muuta /home/jako/ -hakemiston oikeudet

chmod 1777 /home/jako

Anna komennot:

mount --bind /jako1 /home/jako/jako1
mount --bind /jako2 /home/jako/jako2

Muuta /etc/exports tiedosto muotoon (huomaa nohide vs fsid=0):

/home/jako vastaanottavan.koneen.ip.osoite(rw,fsid=0,insecure,no_subtree_check,sync,anonuid=65534,anongig=65534)
/home/jako/jako1 vastaanottavan.koneen.ip.osoite(ro,nohide,insecure,no_subtree_check,sync,anonuid=65534,anongig=65534)
/home/jako/jako2 vastaanottavan.koneen.ip.osoite(rw,nohide,insecure,no_subtree_check,sync,anonuid=65534,anongig=65534)

Asiakaskoneessa

Muuta /etc/fstab rivit muotoon:

serverin_ip:/jako1 	/mnt/nfsjako1		nfs4 rw,hard,intr,proto=tcp,port=2049,auto 	0 0
serverin_ip:/jako2 	/mnt/nfsjako2		nfs4 rw,hard,intr,proto=tcp,port=2049,auto 	0 0

Liitä nfs-jaot:

mount -v /mnt/nfsjako
mount -v /mnt/nfsjako2

Laita palvelut käynnistymään automaattisesti:

chkconfig --level 0123456 portmap off
chkconfig --level 345 portmap on
chkconfig --level 0123456 rpcidmapd off
chkconfig --level 345 rpcidmapd on
chkconfig --level 0123456 nfslock off
chkconfig --level 345 nfslock on
chkconfig --level 0123456 nfs off
chkconfig --level 345 nfs on