Fedora/NFSv4

Linux.fista
Versio hetkellä 1. tammikuuta 2022 kello 16.37 – tehnyt Aarne (keskustelu | muokkaukset)
(ero) ← Vanhempi versio | Nykyinen versio (ero) | Uudempi versio → (ero)
Siirry navigaatioon Siirry hakuun

Tässä artikkelissa selostetaan NFS-protokollan version 4 käyttöä painottuen Fedora Linuxin ja sen rinnakkaisjakeluihin. NFS:n käyttöä on selostettu yleisemmin artikkelissa NFS.

NFS voi mm. seuraavia asetustiedostoja 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ää kyseiseen 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-kansioihin 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[muokkaa]

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[muokkaa]

Palvelimessa[muokkaa]

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[muokkaa]

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

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 on vain lukuoikeudet)
# cd (poistu /mnt/nfsjako1 hakemistosta, jotta voit irrottaa liitoksen)
# umount /mnt/nfsjako1

Kirjoitusoikeudet sisältävä liitos[muokkaa]

Palvelimessa[muokkaa]

Muutetaan ensimmäiseksi jaettavan hakemiston oikeuksia komennolla:

# [[chmod]9 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[muokkaa]

# 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:in omaavat käyttäjät, jotta kyseinen menettely olisi sujuvaa (NIS- tai LDAP-palveluiden ollessa käytössä asia onkin jo kunnossa). Voit luoda käyttäjän sekä palvelimeen että asiakaskoneeseen komennolla:

useradd -u uidnro username

Luo 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[muokkaa]

Lisää asiakaskoneen /etc/fstab-tiedostoon rivi:

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

Liitä asiakaskoneessa fstab-tiedostossa esitellyt jaot komennolla:

# mount -v /mnt/nfsjako2

Irrota liitos:

# umount -v /mnt/nfsjako2

Useamman yhtäaikaisen nfsv4-jaon ja liitoksen tekeminen[muokkaa]

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

Palvelimessa[muokkaa]

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[muokkaa]

Muuta /etc/fstab:in 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

Katso myös[muokkaa]

Aiheesta muualla[muokkaa]