Muokataan sivua Fedora/NFSv4

Siirry navigaatioon Siirry hakuun
Varoitus: Et ole kirjautunut sisään. IP-osoitteesi näkyy julkisesti kaikille, jos muokkaat. Jos kirjaudut sisään tai luot tunnuksen, muokkauksesi yhdistetään käyttäjänimeesi ja saat paremman käyttökokemuksen.

Kumoaminen voidaan suorittaa. Varmista alla olevasta vertailusta, että haluat saada aikaan tämän lopputuloksen, ja sen jälkeen julkaise alla näkyvät muutokset.

Nykyinen versio Oma tekstisi
Rivi 1: Rivi 1:
''Tässä artikkelissa selostetaan NFS-protokollan version 4 käyttöä painottuen [[Fedora Linux]]in ja sen rinnakkais[[jakelu]]ihin. NFS:n käyttöä on selostettu yleisemmin artikkelissa [[NFS]].''
Kyseessä on OPEKO:n kurssille (30-31.1.2006 / Timo Kapanen) tehtyä materiaalia, josta on poistettu kuvat ja muita vain kurssille kuuluvaa materiaalia.


NFS voi mm. seuraavia [[asetustiedosto]]ja ja skriptejä:
Hyvä opas löytyy osoitteesta:<br>
http://www.vanemery.com/Linux/NFSv4/NFSv4-no-rpcsec.html


/etc/[[fstab]] - asiakaskoneessa
NFSv4 käyttää mm. seuraavia konfiguraatiotiedostoja ja skriptejä:<br>
/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


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


Oletuksena käytetään porttia 2049, joten avaa kyseinen portti [[palomuuri]]sta 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 <br>


Käynnistä palomuuri uudestaan muutosten jälkeen:
Oletuksena käytetään porttia 2049, joten avaa kyseinen portti palomuurista lisäämällä tiedostoon /etc/sysconfig/iptables rivi:<br>
# service [[iptables]] restart
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT <br>


Suojaa portmapper lisäämällä /etc/[[hosts.allow]] tiedostoon:
Käynnistä palomuuri uudestaan muutosten jälkeen:<br>
portmap : 127. : ALLOW
service iptables restart<br>
portmap : ALL : DENY


Luo nfs-määrityksiä sisältävä tiedosto:
Suojaa portmapper lisäämällä /etc/hosts.allow tiedostoon:<br>
# [[touch]] /etc/sysconfig/nfs
portmap : 127. : ALLOW<br>
portmap : ALL : DENY<br>


Lisää kyseiseen tiedostoon rivit
Luo nfs määrityksiä sisältävä tiedosto:<br>
# Muuta tähän "yes", jos haluat Kerberos 5 -autentikoinnin
touch /etc/sysconfig/nfs<br>
SECURE_NFS="no"
# NFS-prosessien määrä
RPCNFSDCOUNT=8


Luo jaettavat kansiot:
Lisää kys. tiedostoon rivit:<br>
  # [[mkdir]] /home/jako1<br>
  #
  # mkdir /home/jako2<br>
Luo jako1- ja jako2-kansioihin tekstitiedostot testaamista varten ja kirjoita niihin jotain sisältöä.
  # NFS prosessien määrä
RPCNFSDCOUNT=8<br>


# [[touch]] /home/jako1/testi1.txt<br>
Luo jaettavat kansiot:<br>
# touch /home/jako2/testi2.txt<br>
mkdir /home/jako1<br>
mkdir /home/jako2<br>
Luo jako1 ja jako2 kansioon tekstitiedostot testaamista varten ja kirjoita niihin jotain sisältöä.<br>


Käynnistä tarvittavat palvelut ([[portmap]], [[rpcidmapd]], [[nfslock]] ja nfs)
touch /home/jako1/testi1.txt<br>
# service portmap start
touch /home/jako2/testi2.txt<br>
# service rpcidmapd start
# service nfslock start
# service nfs start


Voit tarkistaa nfs:ään liittyvät palvelut komennolla:
Käynnistä tarvittavat palvelut (portmap, rpcidmapd, nfslock ja nfs)<br>
$ rpcinfo -p
service portmap start <br>
service rpcidmapd start<br>
service nfslock start<br>
service nfs start<br>


sekä niihin liittyviä portteja komennolla:
Voit tarkistaa nfs:ään liittyvät palvelut komennolla:<br>
$ netstat -tupa
rpcinfo -p <br>


==Asiakkaan puoli==
sekä niihin liittyviä portteja komennolla:<br>
netstat -tupa<br>


Suojaa portmapper:
portmap : 127. : ALLOW
portmap : ALL : DENY


Luo liitospaikat:  
Asiakkaan puoli:<br>
# [[mkdir]] -m 755 /mnt/nfsjako1
# mkdir -m 755 /mnt/nfsjako2


Käynnistä tarvittavat palvelut:
Suojaa portmapper:<br>
# service portmap start
portmap : 127. : ALLOW<br>
# service rpcidmapd start
portmap : ALL : DENY<br>


==Vain luku -liitos==
Luo liitospaikat:<br>
mkdir -m 755 /mnt/nfsjako1<br>
mkdir -m 755 /mnt/nfsjako2<br>


===Palvelimessa===
Käynnistä tarvittavat palvelut:<br>
Muokkaa /etc/exports -tiedostoa:
service portmap start<br>
/home/jako1 vastaanottavan.koneen.ip.osoite(ro,fsid=0,insecure,no_subtree_check,sync,anonuid=65534,anongid=65534)
service rpcidmapd start<br>


Otetaan muutokset käyttöön:
# [[exportfs]] -rv


Voit nähdä jaon parametrit komennolla:
# exportfs -v


Jaetut hakemistot näet myös komennolla:
Vain luku -liitos<br>
$ [[showmount]] -e


===Asiakkaassa===
Palvelimessa: <br>


Liittäminen tapahtuu [[mount]]-komennolla (irroittaminen komennolla [[umount]]). Mount-komento sisältää useita tarkenteita, katso lisää komennolla [[man]] mount.
muokkaa /etc/exports tiedostoa:<br>
/home/jako1 vastaanottavan.koneen.ip.osoite(ro,fsid=0,insecure,no_subtree_check,sync,anonuid=65534,anongig=65534)<br>


o
Otetaan muutokset käyttöön:<br>
options ro(read-only)
exportfs -rv<br>
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:
Voit nähdä jaon parametrit komennolla:<br>
# [[cd]] /mnt/nfsjako1
exportfs -v<br>


Tarkista sisältö:
Jaetut hakemistot näet myös komennolla:<br>
# [[ls]]
showmount -e<br><br>


Yritä kirjoittaa hakemistoon:
Asiakkaassa:<br>
# [[touch]] jeejee.txt  (aiheuttaa virheen koska on vain lukuoikeudet)


# cd (poistu /mnt/nfsjako1 hakemistosta, jotta voit irrottaa liitoksen)
Liittäminen tapahtuu mount komennolla (irroittaminen umount). Mount komento sisältää useita tarkenteita, katso lisää man mount komennolla.<br>
# [[umount]] /mnt/nfsjako1


==Kirjoitusoikeudet sisältävä liitos==
o<br>
options ro(read-only)<br>
intr<br>
Mahdollistaa nfs-kutsun peruuttamisen kun palvelin ei vastaa<br><br>
Liitä /home/jako1 oman koneesi /mnt/nfsjako1 hakemistoon komennolla:<br>
mount -t nfs4 -o ro,intr serverin_ip:/ /mnt/nfsjako1<br>


===Palvelimessa===
Siirry liittämääsi hakemistoon:<br>
cd /mnt/nfsjako1<br>


Muutetaan ensimmäiseksi jaettavan hakemiston oikeuksia komennolla:
Tarkista sisältö:<br>
# [[chmod]9 1777 /home/nfsjako2
ls<br>
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):
Yritä kirjoittaa hakemistoon:<br>
/home/jako2 vastaanottavan.koneen.ip.osoite(rw,fsid=0,insecure,no_subtree_check,sync,anonuid=65534,anongig=65534)
touch jeejee.txt  (aiheuttaa virheen koska vain luku oikeudet)<br>


Otetaan muutokset käyttöön:
cd (poistu /mnt/nfsjako1 hakemistosta, jotta voit irrottaa liitoksen)<br>
# exportfs -rv
umount /mnt/nfsjako1<br>
Kirjoitusoikeudet sisältävä liitos<br><br>


===Asiakkaassa===
Palvelimessa: <br><br>


# mount -t nfs4 -o rw,intr serverin_ip:/ /mnt/nfsjako2>
Muutetaan ensimmäiseksi jaettavan hakeiston oikeuksia komennolla:<br>
chmod 1777 /home/nfsjako2<br>
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.<br>


Siirry liittämääsi hakemistoon:
Lisää /etc/exports tiedostoon rivi (ja kommentoi aiempi):<br>
# cd /mnt/nfsjako2
/home/jako2 vastaanottavan.koneen.ip.osoite(rw,fsid=0,insecure,no_subtree_check,sync,anonuid=65534,anongig=65534)<br>


Yritä kirjoittaa hakemistoon:
Otetaan muutokset käyttöön:<br>
# touch jeejee.txt<br>
exportfs -rv<br><br>


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.
Asiakkaassa:<br><br>


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:<br>
mount -t nfs4 -o rw,intr serverin_ip:/ /mnt/nfsjako2<br>
useradd -u uidnro username


Luo palvelimeen nfsuser1-niminen käyttäjä uid:llä 600:<br>
Siirry liittämääsi hakemistoon:<br>
# useradd -u 600 nfsuser1<br>
cd /mnt/nfsjako2<br>
# passwd nfsuser1<br>
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
Yritä kirjoittaa hakemistoon:<br>
# service rpcidmapd restart
touch jeejee.txt<br>


Siirry nfsuser1-käyttäjäksi asiakaskoneessa komennolla:
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.<br>
# su - nfsuser1


Luo tiedosto /mnt/nfsjako2-hakemistoon ja poista se:
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:<br>
# touch /mnt/nfsjako2/poistettava.txt
useradd -u uidnro username<br>
# rm /mnt/nfsjako2/poistettava.txt


# cd (poistu /mnt/nfsjako2-hakemistosta, jotta voit irrottaa liitoksen)
Luo sekä palvelimeen nfsuser1 niminen käyttäjä uid:llä 600:<br>
# umount /mnt/nfsjako2
useradd -u 600 nfsuser1<br>
passwd nfsuser1<br>
Tämän lisäksi molempien koneiden tulee kuulua samaan domainiin. Muuta /etc/idmapd.conf tiedostoon toimialueeksi sama kuin tulevaan asiakkaaseen.<br>
Domain = sukunimesi.jee<br>


==Automaattinen liitos==
Käynnistä rpcidmapd uudestaan<br>
service rpcidmapd restart<br>


Lisää asiakaskoneen /etc/[[fstab]]-tiedostoon rivi:
Siirry nfsuser1 käyttäjäksi asiakaskoneessa komennolla:<br>
serverin_ip:/ /mnt/nfsjako2 nfs4 rw,hard,intr,proto=tcp,port=2049,auto 0 0
su nfsuser1<br>


Liitä asiakaskoneessa fstab-tiedostossa esitellyt jaot komennolla:
Luo tiedosto /mnt/nfsjako2 hakemistoon ja poista se:<br>
# mount -v /mnt/nfsjako2
touch /mnt/nfsjako2/poistettava.txt<br>
rm /mnt/nfsjako2/poistettava.txt<br><br>


Irrota liitos:
cd (poistu /mnt/nfsjako2 hakemistosta, jotta voit irrottaa liitoksen)<br>
# umount -v /mnt/nfsjako2
umount /mnt/nfsjako2<br><br>


==Useamman yhtäaikaisen nfsv4-jaon ja liitoksen tekeminen==
Automaattinen liitos:<br><br>


Palvelimen jakamat jaot näkyvät yhtenä isona tiedostojärjestelmänä, mutta voit jakaa ja liittää useita hakemistoja mount --bind -komennon avulla.
Lisää asiakaskoneen /etc/fstab tiedostoon rivi:<br>
serverin_ip:/ /mnt/nfsjako2 nfs4 rw,hard,intr,proto=tcp,port=2049,auto 0 0<br>


===Palvelimessa===
Liitä asiakaskoneessa niinkuin fstab tiedostossa esitetty komennolla:<br>
mount -v /mnt/nfsjako2<br>


Luo hakemisto /home/jako ja siirrä aiemmin tehdyt jako1 ja jako2 sen alle.
Irroita liitos:<br>
umount -v /mnt/nfsjako2<br><br>


Muuta /home/jako/-hakemiston oikeudet
Useamman yhtäaikaisen nfsv4-jaon ja liitoksen tekeminen<br><br>
# [[chmod]] 1777 /home/jako<br>


Anna komennot:
Palvelimen jakamat jaot näkyvät yhtenä isona tiedostojärjestelmänä, mutta voit jakaa ja liittää useita hakemistoja mount --bind komennon avulla.<br><br>
# mount --bind /jako1 /home/jako/jako1
# mount --bind /jako2 /home/jako/jako2


Muuta /etc/exports-tiedosto muotoon (huomaa nohide vs fsid=0):
Palvelimessa:<br>
/home/jako vastaanottavan.koneen.ip.osoite(rw,fsid=0,insecure,no_subtree_check,sync,anonuid=65534,anongig=65534)<br>
/home/jako/jako1 vastaanottavan.koneen.ip.osoite(ro,nohide,insecure,no_subtree_check,sync,anonuid=65534,anongig=65534)<br>
/home/jako/jako2 vastaanottavan.koneen.ip.osoite(rw,nohide,insecure,no_subtree_check,sync,anonuid=65534,anongig=65534)<br><br>


===Asiakaskoneessa===
Luo hakemisto /home/jako ja siirrä aiemmin tehdyt jako1 ja jako2 sen alle.<br>
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:
Muuta /home/jako/ hakemiston oikeudet:<br>
# mount -v /mnt/nfsjako
chmod 1777 /home/jako<br>
# mount -v /mnt/nfsjako2


Laita palvelut käynnistymään automaattisesti:
Anna komennot:<br>
mount --bind /jako1 /home/jako/jako1<br>
mount --bind /jako2 /home/jako/jako2<br>


# [[chkconfig]] --level 0123456 portmap off
Muuta /etc/exports tiedosto muotoon (huomaa nohide vs fsid=0):<br>
# chkconfig --level 345 portmap on
/home/jako vastaanottavan.koneen.ip.osoite(rw,fsid=0,insecure,no_subtree_check,sync,anonuid=65534,anongig=65534)<br>
# chkconfig --level 0123456 rpcidmapd off
/home/jako/jako1 vastaanottavan.koneen.ip.osoite(ro,nohide,insecure,no_subtree_check,sync,anonuid=65534,anongig=65534)<br>
# chkconfig --level 345 rpcidmapd on
/home/jako/jako2 vastaanottavan.koneen.ip.osoite(rw,nohide,insecure,no_subtree_check,sync,anonuid=65534,anongig=65534)<br><br>
# chkconfig --level 0123456 nfslock off
# chkconfig --level 345 nfslock on
# chkconfig --level 0123456 nfs off
# chkconfig --level 345 nfs on


==Katso myös==
Asiakaskoneessa:<br><br>
*[[NFS]]


==Aiheesta muualla==
*[http://www.vanemery.com/Linux/NFSv4/NFSv4-no-rpcsec.html Laaja NFS-opas Fedora Core 2 -jakelulle]


[[Luokka:Ohjeet]]
Muuta /etc/fstab rivit muotoon:<br>
[[Luokka:Tiedostojärjestelmät]]
serverin_ip:/jako1 /mnt/nfsjako1 nfs4 rw,hard,intr,proto=tcp,port=2049,auto 0 0<br>
[[Luokka:Verkko]]
serverin_ip:/jako2 /mnt/nfsjako2 nfs4 rw,hard,intr,proto=tcp,port=2049,auto 0 0<br>
[[Luokka:Fedora Linux]]
 
Liitä nfs-jaot:<br>
mount -v /mnt/nfsjako<br>
mount -v /mnt/nfsjako2<br>
 
Laita palvelut käynnistymään automaattisesti:<br>
 
chkconfig --level 0123456 portmap off<br>
chkconfig --level 345 portmap on<br>
chkconfig --level 0123456 rpcidmapd off<br>
chkconfig --level 345 rpcidmapd on<br>
chkconfig --level 0123456 nfslock off<br>
chkconfig --level 345 nfslock on<br>
chkconfig --level 0123456 nfs off<br>
chkconfig --level 345 nfs on<br>
Wikin materiaali on kaikkien vapaasti käytettävissä Creative Commons 3.0 - nimi mainittava -lisenssin alaisuudessa. TEKIJÄNOIKEUDEN ALAISEN MATERIAALIN KÄYTTÄMINEN ILMAN LUPAA ON EHDOTTOMASTI KIELLETTYÄ!

Muokataksesi tätä sivua vastaa alla olevaan kysymykseen (lisätietoja):

Peruuta Muokkausohjeet (avautuu uuteen ikkunaan)