NFS deljena mapa
Učni list 6: Vzpostavitev NFS deljene mape¶
Namen vaje¶
Tvoja naloga je, da vzpostaviš omrežni datotečni sistem in razumeš razliko med lokalnim ter omrežnim dostopom do datotek.
Kako brati mikro razlage¶
- razčlenitev sintakse — kaj pomeni posamezni del ukaza
- kaj se zgodi po pritisku Enter — neposredna posledica v sistemu ali omrežju
- na kaj ukaz vpliva — datoteka, proces ali port
- kaj pričakuješ kot rezultat — konkretna kontrolna točka
Cilj je, da ne ostaneš na ravni prepisal sem ukaz, ampak prideš do ravni vem, zakaj sem ga izvedel in kaj moram po njem preveriti.
Cilji¶
- znaš namestiti NFS strežnik in klienta
- znaš izvoziti mapo prek NFS
- znaš priklopiti NFS deljeno mapo na klientu
- razumeš pomen pravic in možnosti
root_squash - znaš preveriti trajni priklop prek
/etc/fstab
Potrebna oprema in predznanje¶
- osnovno delujoče omrežje med strežnikom in klientom
- razumeš Linux pravice in lastništvo datotek
Teorija v ozadju¶
NFS pomeni Network File System. Omogoča, da klient uporablja mapo z oddaljenega strežnika skoraj tako, kot da bi bila lokalna.
Za uporabnika je občutek podoben lokalnemu delu, v ozadju pa vse datotečne operacije potujejo po omrežju do strežnika.
To je zelo praktično za deljene domače mape, laboratorijske materiale in centralizirane podatke, vendar zahteva previdnost pri pravicah in varnosti.
Na kaj je treba paziti¶
- Ne izvozi cele korenske datoteke sistema. Za laboratorij uporabi namensko mapo.
- Možnost
root_squashje pomembna, ker root uporabnika na klientu preslika v manj privilegiranega uporabnika na strežniku. - Če NFS ne dela, vedno loči: ali je problem v exportu, v mreži ali v pravicah datotek?
Kako brati to vajo
Vsak korak ima tri plasti: kaj narediš, kaj ukaz pomeni in kaj se v ozadju zgodi v sistemu ali omrežju. Cilj ni slepo kopiranje ukazov, ampak razumevanje, zakaj posamezni korak obstaja.
Navodila po korakih¶
1. Na strežniku namesti NFS strežnik¶
Kaj narediš
Namesti paket nfs-kernel-server.
Ukazi
Mikro razlaga ukazov¶
Ukaz 1: sudo apt update
- Razčlenitev sintakse:
sudoukaz izvede z administratorskimi pravicami.aptje upravljalnik paketov na Debian/Ubuntu sistemih.updatene namešča programov; samo osveži lokalni seznam paketov iz repozitorijev.- Kaj se zgodi po pritisku Enter: Sistem osveži lokalne informacije o paketih. Ni še spremembe storitev, ampak priprava na korektno namestitev ali posodobitev.
- Na kaj ta ukaz vpliva:
- Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
- Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Ukaz 2: sudo apt install nfs-kernel-server -y
- Razčlenitev sintakse:
installnamesti navedene pakete:nfs-kernel-server.-ysamodejno potrdi namestitev.- Kaj se zgodi po pritisku Enter: Na sistem se namesti nov paket oziroma storitev. Ob tem se pogosto ustvarijo konfiguracijske datoteke, sistemska enota
systemdin včasih se servis zažene že sam. - Na kaj ta ukaz vpliva:
- Datoteke:
/etc/exports,/srv/nfs/skupna_mapa,/etc/fstab - Procesi/storitve:
nfs-kernel-server - Porti:
2049/TCP - Kaj pričakuješ kot rezultat: Paket se namesti brez napake, na koncu pa ni vrstice tipa
E:alifailed.
Zakaj je korak pomemben¶
Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.
Kaj ta korak pomeni
Paket sistemu doda jedrne in uporabniške komponente za izvoz map prek NFS.
Kaj se dogaja v ozadju
NFS je tesno povezan z jedrom, ker gre za datotečni sistem in ne samo za “navaden” aplikacijski servis.
Kaj moraš opaziti
Po namestitvi je storitev na voljo, a še nima nobenega definiranega izvoza.
Če ne dela, preveri
- Če servis ne steče, preveri sistemske dnevnike in morebitne konflikte paketov.
2. Pripravi mapo za izvoz in nastavi pravice¶
Kaj narediš
Ustvari namensko deljeno mapo in nastavi razumno lastništvo.
Ukazi
sudo mkdir -p /srv/nfs/skupna_mapa
sudo chown nobody:nogroup /srv/nfs/skupna_mapa
sudo chmod 2775 /srv/nfs/skupna_mapa
Mikro razlaga ukazov¶
Ukaz 1: sudo mkdir -p /srv/nfs/skupna_mapa
- Razčlenitev sintakse:
sudoje potreben, ker ustvarjaš mapo v sistemskem delu datotečnega sistema.mkdir -pustvari pot tudi z vmesnimi mapami.- Cilj je
/srv/nfs/skupna_mapa. - Kaj se zgodi po pritisku Enter: Takoj preveri, kaj se je spremenilo.
- Na kaj ta ukaz vpliva:
- Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
- Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Ukaz 2: sudo chown nobody:nogroup /srv/nfs/skupna_mapa
- Razčlenitev sintakse:
- Ukaz se izvaja z administratorskimi pravicami. To je običajno potrebno pri strežniških nastavitvah.
- Kaj se zgodi po pritisku Enter: Takoj preveri, kaj se je spremenilo.
- Na kaj ta ukaz vpliva:
- Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
- Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Ukaz 3: sudo chmod 2775 /srv/nfs/skupna_mapa
- Razčlenitev sintakse:
chmodspremeni dovoljenja nad/srv/nfs/skupna_mapa.- Način
2775določa, kdo lahko bere, piše ali vstopa v mapo. - Kaj se zgodi po pritisku Enter: Takoj preveri, kaj se je spremenilo.
- Na kaj ta ukaz vpliva:
- Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
- Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Zakaj je korak pomemben¶
Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.
Kaj ta korak pomeni
Mapa /srv je smiselna lokacija za storitvene podatke. Pravice določajo, kdo bo lahko po mreži bral ali pisal.
Kaj se dogaja v ozadju
NFS ne ignorira datotečnih pravic. Če so pravice napačne, bo klient videl “Permission denied”, četudi je mount tehnično uspel.
Kaj moraš opaziti
Mapa obstaja in ima nastavljene pravice.
Če ne dela, preveri
- Če uporabiš preozke pravice, klient ne bo mogel zapisovati. Če uporabiš preširoke, je vaja manj didaktična.
3. Definiraj NFS export¶
Kaj narediš
V datoteki /etc/exports izvozi deljeno mapo za laboratorijsko omrežje.
Ukazi
Mikro razlaga ukazov¶
Ukaz 1: sudo nano /etc/exports
- Razčlenitev sintakse:
nanoodpre besedilno datoteko v terminalskem urejevalniku.- Odpira se datoteka
/etc/exports. Če datoteka še ne obstaja, jo boš ob shranjevanju ustvaril. - Kaj se zgodi po pritisku Enter: Sprememba se še ne zgodi v teku storitve. Najprej spremeniš datoteko na disku; učinek nastopi šele po restartu ali reloadu storitve.
- Na kaj ta ukaz vpliva:
- Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
- Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Zakaj je korak pomemben¶
Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.
Primer konfiguracije
Praktičen primer učinka root_squash
Če se na klientu prijaviš kot root in v priklopljeni mapi ustvariš datoteko, strežnik tega ne obravnava kot “pravi root z druge naprave”. Pri root_squash tak zahtevek običajno preslika na uporabnika nobody, zato boš ob neustreznih pravicah hitro dobil Permission denied.
Kaj ta korak pomeni
rw omogoči pisanje, sync pomeni, da strežnik potrjuje zapis bolj varno, no_subtree_check poenostavi preverjanje poddreves, root_squash pa omeji privilegije root uporabnika s klienta.
Kaj se dogaja v ozadju
To je bistvo NFS strežnika: ne izvaža “vseh map”, ampak točno tiste, ki jih izrecno navedeš, in pod točno določenimi pogoji.
Kaj moraš opaziti
V datoteki mora biti ena vrstica za laboratorijsko omrežje.
Če ne dela, preveri
- Če omrežni obseg ne ustreza tvojemu laboratoriju, klient mounta ne bo smel opraviti.
4. Naloži izvoze in preveri, kaj strežnik ponuja¶
Kaj narediš
Uporabi exportfs, da strežnik prebere novo datoteko z izvozi.
Ukazi
Mikro razlaga ukazov¶
Ukaz 1: sudo exportfs -rav
- Razčlenitev sintakse:
exportfsponovno izvozi vse NFS deljene mape.-rpomeni reexport,-avse delitve,-vpodroben izpis.- Kaj se zgodi po pritisku Enter: Takoj preveri, kaj se je spremenilo.
- Na kaj ta ukaz vpliva:
- Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
- Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Ukaz 2: sudo exportfs -v
- Razčlenitev sintakse:
- Pokaže aktivne NFS izvoze in opcije, s katerimi so deljeni.
- Kaj se zgodi po pritisku Enter: Takoj preveri, kaj se je spremenilo.
- Na kaj ta ukaz vpliva:
- Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
- Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Zakaj je korak pomemben¶
Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.
Kaj ta korak pomeni
exportfs -rav osveži vse izvoze, -v pa izpiše, kaj je dejansko aktivno in s katerimi možnostmi.
Kaj se dogaja v ozadju
Datoteka /etc/exports sama po sebi ničesar ne izvozi, dokler je ne prebere storitev oziroma exportfs.
Kaj moraš opaziti
V izpisu moraš videti /srv/nfs/skupna_mapa in odobreni omrežni obseg.
Če ne dela, preveri
- Če izvoza ne vidiš, je težava v sintaksi vrstice ali v branju konfiguracije.
5. Na klientu namesti podporo za NFS¶
Kaj narediš
Na klientu namesti paket nfs-common.
Ukazi
Mikro razlaga ukazov¶
Ukaz 1: sudo apt update
- Razčlenitev sintakse:
sudoukaz izvede z administratorskimi pravicami.aptje upravljalnik paketov na Debian/Ubuntu sistemih.updatene namešča programov; samo osveži lokalni seznam paketov iz repozitorijev.- Kaj se zgodi po pritisku Enter: Sistem osveži lokalne informacije o paketih. Ni še spremembe storitev, ampak priprava na korektno namestitev ali posodobitev.
- Na kaj ta ukaz vpliva:
- Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
- Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Ukaz 2: sudo apt install nfs-common -y
- Razčlenitev sintakse:
installnamesti navedene pakete:nfs-common.-ysamodejno potrdi namestitev.- Kaj se zgodi po pritisku Enter: Na sistem se namesti nov paket oziroma storitev. Ob tem se pogosto ustvarijo konfiguracijske datoteke, sistemska enota
systemdin včasih se servis zažene že sam. - Na kaj ta ukaz vpliva:
- Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
- Kaj pričakuješ kot rezultat: Paket se namesti brez napake, na koncu pa ni vrstice tipa
E:alifailed.
Zakaj je korak pomemben¶
Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.
Kaj ta korak pomeni
Klient potrebuje orodja in podporo za priklop NFS datotečnega sistema.
Kaj se dogaja v ozadju
Strežnik in klient nimata istih paketov. Eden izvaža, drugi priklaplja.
Kaj moraš opaziti
Po namestitvi je klient pripravljen na mount.
Če ne dela, preveri
- Če paket manjka, ukaz
mount -t nfsne bo deloval pravilno.
6. Preveri, katere izvoze strežnik ponuja¶
Kaj narediš
Na klientu uporabi showmount za vpogled v izvoze strežnika.
Ukazi
Mikro razlaga ukazov¶
Ukaz 1: showmount -e 192.168.56.10
- Razčlenitev sintakse:
showmountvpraša NFS strežnik192.168.56.10, katere mape trenutno izvozi.- Kaj se zgodi po pritisku Enter: Posodobi ali preveriš NFS izvoze. To vpliva na to, kaj klienti sploh lahko priklopijo.
- Na kaj ta ukaz vpliva:
- Porti:
2049/TCP - Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Zakaj je korak pomemben¶
Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.
Kaj ta korak pomeni
To je hiter preizkus, ali klient sploh vidi, kaj strežnik izvaža.
Kaj se dogaja v ozadju
Pred mountom je smiselno preveriti, ali je strežnik dosegljiv in ali export obstaja.
Kaj moraš opaziti
V izpisu mora biti /srv/nfs/skupna_mapa.
Če ne dela, preveri
- Če ukaz ne vrne ničesar, preveri mrežo, servis ali požarni zid.
7. Priklopi deljeno mapo na klientu¶
Kaj narediš
Ustvari lokalno točko priklopa in mountaj NFS deljeno mapo.
Ukazi
sudo mkdir -p /mnt/skupna
sudo mount -t nfs 192.168.56.10:/srv/nfs/skupna_mapa /mnt/skupna
mount | grep skupna
Mikro razlaga ukazov¶
Ukaz 1: sudo mkdir -p /mnt/skupna
- Razčlenitev sintakse:
sudoje potreben, ker ustvarjaš mapo v sistemskem delu datotečnega sistema.mkdir -pustvari pot tudi z vmesnimi mapami.- Cilj je
/mnt/skupna. - Kaj se zgodi po pritisku Enter: Takoj preveri, kaj se je spremenilo.
- Na kaj ta ukaz vpliva:
- Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
- Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Ukaz 2: sudo mount -t nfs 192.168.56.10:/srv/nfs/skupna_mapa /mnt/skupna
- Razčlenitev sintakse:
mountpriklopi oddaljeni NFS vir192.168.56.10:/srv/nfs/skupna_mapa.-t nfspove vrsto datotečnega sistema, cilj priklopa pa je/mnt/skupna.- Kaj se zgodi po pritisku Enter: Takoj preveri, kaj se je spremenilo.
- Na kaj ta ukaz vpliva:
- Porti:
2049/TCP - Kaj pričakuješ kot rezultat: Priklop se izvede brez napake, v
mountizpisu pa vidiš oddaljeni NFS vir in lokalno priklopno točko.
Ukaz 3: mount | grep skupna
- Razčlenitev sintakse:
- Prikaže vse trenutno priklopljene datotečne sisteme in izloči vrstice, ki vsebujejo
skupna. - Kaj se zgodi po pritisku Enter: Jedro priklopi oddaljeni ali lokalni datotečni sistem v drevo imenikov. Od tega trenutka dostopaš do oddaljenih datotek skozi lokalno pot.
- Na kaj ta ukaz vpliva:
- Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
- Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Zakaj je korak pomemben¶
Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.
Kaj ta korak pomeni
S tem se oddaljena mapa “pripne” v lokalno drevo datotečnega sistema klienta.
Kaj se dogaja v ozadju
To je osrednja ideja NFS: oddaljen prostor se vgradi v lokalni hierarhični pogled nad datotekami.
Kaj moraš opaziti
Izpis mount mora pokazati NFS mount na /mnt/skupna.
Če ne dela, preveri
- Če dobiš
access denied by server, preveri export in dovoljeni omrežni obseg.
8. Preveri branje in pisanje med klientom in strežnikom¶
Kaj narediš
Na klientu ustvari datoteko v deljeni mapi, nato jo preveri na strežniku.
Ukazi
Mikro razlaga ukazov¶
Ukaz 1: echo "NFS deluje" | sudo tee /mnt/skupna/test_nfs.txt
- Razčlenitev sintakse:
echopripravi besediloNFS deluje.|preusmeri izpis prvega ukaza v naslednji ukaz.teez administratorskimi pravicami zapiše vsebino v/mnt/skupna/test_nfs.txtin jo hkrati izpiše na zaslon.- Kaj se zgodi po pritisku Enter: Takoj preveri, kaj se je spremenilo.
- Na kaj ta ukaz vpliva:
- Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
- Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Ukaz 2: cat /mnt/skupna/test_nfs.txt
- Razčlenitev sintakse:
catprebere in izpiše vsebino datoteke/mnt/skupna/test_nfs.txtna terminal.- Kaj se zgodi po pritisku Enter: Takoj preveri, kaj se je spremenilo.
- Na kaj ta ukaz vpliva:
- Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
- Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Zakaj je korak pomemben¶
Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.
Kaj ta korak pomeni
S tem preveriš, da mount ni samo navidezen in da operacije res delujejo v obe smeri.
Kaj se dogaja v ozadju
Če datoteko vidiš na strežniku, pomeni, da je klient dejansko pisal na oddaljeni disk, ne lokalno.
Kaj moraš opaziti
Na strežniku v /srv/nfs/skupna_mapa moraš videti isto datoteko.
Če ne dela, preveri
- Če branje dela, pisanje pa ne, je skoraj vedno težava v pravicah ali v
root_squashučinku.
9. Nastavi trajni priklop prek /etc/fstab¶
Kaj narediš
Da bo NFS deljena mapa na voljo tudi po ponovnem zagonu, dodaj vnos v fstab.
Ukazi
Mikro razlaga ukazov¶
Ukaz 1: sudo nano /etc/fstab
- Razčlenitev sintakse:
nanoodpre besedilno datoteko v terminalskem urejevalniku.- Odpira se datoteka
/etc/fstab. Če datoteka še ne obstaja, jo boš ob shranjevanju ustvaril. - Kaj se zgodi po pritisku Enter: Sprememba se še ne zgodi v teku storitve. Najprej spremeniš datoteko na disku; učinek nastopi šele po restartu ali reloadu storitve.
- Na kaj ta ukaz vpliva:
- Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
- Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Ukaz 2: sudo mount -a
- Razčlenitev sintakse:
- Prebere
/etc/fstabin poskusi priklopiti vse vnose, ki še niso priklopljeni. To je idealen test, ali je zapis vfstabpravilen. - Kaj se zgodi po pritisku Enter: Takoj preveri, kaj se je spremenilo.
- Na kaj ta ukaz vpliva:
- Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
- Kaj pričakuješ kot rezultat: Priklop se izvede brez napake, v
mountizpisu pa vidiš oddaljeni NFS vir in lokalno priklopno točko.
Zakaj je korak pomemben¶
Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.
Primer konfiguracije
Kaj ta korak pomeni
_netdev pove sistemu, da gre za omrežni datotečni sistem in naj ga ne poskuša priklopiti prehitro pred omrežjem.
Kaj se dogaja v ozadju
S tem vidiš razliko med trenutnim mountom in trajno sistemsko konfiguracijo.
Kaj moraš opaziti
mount -a ne sme vrniti napake.
Če ne dela, preveri
- Če je vrstica v
fstabnapačna, lahko naslednji boot postane neprijeten. Zato najprej uporabimount -a.
Preverjanje delovanja¶
- [ ] strežnik uspešno izvaža mapo prek NFS
- [ ] klient vidi export in ga uspešno mounta
- [ ] datoteka, ustvarjena na klientu, je vidna tudi na strežniku
- [ ] trajni priklop prek
fstabdeluje - [ ] znaš razložiti
root_squash
Vprašanja za razmislek¶
- Kaj je glavna ideja NFS?
- Zakaj ne izvažamo kar cele korenske datoteke?
- Kaj pomeni možnost
root_squash? - Zakaj v
fstabuporabimo_netdev?
Dodatni izziv¶
Ustvari drugo deljeno mapo samo za branje in preveri, da klient lahko bere njeno vsebino, ne more pa vanjo pisati.
Mini povzetek¶
Po tej vaji moraš znati na kratko razložiti, kaj je vloga servisa vzpostavitev nfs deljene mape v omrežju, kateri proces ali konfiguracija ga omogoča in kako ga preverimo s klienta.