Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: Jueisa - 02.02.14 - klo:03.29
-
NFS:n käyttöä olen tässä kovin yritellyt opetella, on vaan niin kovin erilaisia ohjeita ja siltikään en ole joihinkin kysymyksiini löytänyt minkäänlaista vastausta. Alla olevan ohjeen olen itselleni luonut.
Tietokone A1
pääte:sudo nano /etc/hosts.deny
hosts.deny:portmap: ALL
pääte:sudo nano /etc/hosts.allow
hosts.allow:portmap: 192.168.11.1 192.168.11.2 192.168.11.3 192.168.11.4 192.168.11.5 192.168.11.6 192.168.11.7 192.168.11.8
pääte:sudo apt-get install nfs-kernel-server
sudo mkdir /home/kayttaja_A1/Jaettava_kansio_A1
sudo mkdir /media/kayttaja_A1/Toinen_kiintolevy/Jaettava_kansio_B2
sudo nano /etc/exports
exports:/home/kayttaja_A1/Jaettava_kansio_A1 192.168.11.1(rw,sync,no_subtree_check) 192.168.11.2(rw,sync,no_subtree_check) 192.168.11.3(rw,sync,no_subtree_check) 192.168.11.4(rw,sync,no_subtree_check) 192.168.11.5(rw,sync,no_subtree_check) 192.168.11.6(rw,sync,no_subtree_check) 192.168.11.7(rw,sync,no_subtree_check) 192.168.11.8(rw,sync,no_subtree_check)
/media/kayttaja_A1/Toinen_kiintolevy/Jaettava_kansio_B2 192.168.11.1(rw,sync,no_subtree_check) 192.168.11.2(rw,sync,no_subtree_check) 192.168.11.3(rw,sync,no_subtree_check) 192.168.11.4(rw,sync,no_subtree_check) 192.168.11.5(rw,sync,no_subtree_check) 192.168.11.6(rw,sync,no_subtree_check)
pääte:sudo /etc/init.d/nfs-kernel-server restart
Tietokone B2
pääte:sudo apt-get install nfs-common
sudo mkdir /home/kayttaja_B2/Jaettava_kansio_A1
sudo mkdir /home/kayttaja_B2/Jaettava_kansio_B2
sudo apt-get install autofs
sudo nano /etc/auto.master
auto.master:/home/kayttaja_B2/Jaettava_kansio_A1 /etc/auto.Jaettava_kansio_A1 --timeout=60
/home/kayttaja_B2/Jaettava_kansio_B2 /etc/auto.Jaettava_kansio_B2 --timeout=60
auto.Jaettava_kansio_A1:/home/kayttaja_B2/Jaettava_kansio_A1 -fstype=nfs,users,rw,auto,rsize=8192,wsize=8192,timeo=14,hard,intr 192.168.11.3:/home/kayttaja_A1/Jaettava_kansio_A1
auto.Jaettava_kansio_B2:/home/kayttaja_B2/Jaettava_kansio_B2 -fstype=nfs,users,rw,auto,rsize=8192,wsize=8192,timeo=14,hard,intr 192.168.11.3:/media/kayttaja_A1/Toinen_kiintolevy/Jaettava_kansio_B2
pääte:sudo restart autofs
Tietokone C3
pääte:sudo apt-get install nfs-common
sudo mkdir /home/kayttaja_C3/Jaettava_kansio_A1
sudo apt-get install autofs
sudo nano /etc/auto.master
auto.master:/home/kayttaja_C3/Jaettava_kansio_A1 /etc/auto.Jaettava_kansio_A1 --timeout=60
auto.Jaettava_kansio_A1:/home/kayttaja_C3/Jaettava_kansio_A1 -fstype=nfs,users,rw,auto,rsize=8192,wsize=8192,timeo=14,hard,intr 192.168.11.3:/home/kayttaja_A1/Jaettava_kansio_A1
pääte:sudo restart autofs
Kysymyksiä
1. Saako hakemistopolut johtaa mihin vaan kuten ohjeissani?
2. Onko ohjeissani oikeat valitsimet?
3. Saako "exports"-tiedostoon määriteltyä pelkästään "hosts.allow"-tiedostossa mainitut IP-osoitteet?
4. Saako "hosts.allow"-tiedostossa mainitut IP-osoitteet määriteltyä lyhyemmin ilman, että tulee kattamaan muita osoitteita?
5. Ei ole mitään merkitystä onko tietokoneissa eri- vai samanniminen käyttäjä?
6. Onko ohjeissani muuta korjattavaa, parannettavaa, säädettävää tai huomioitavaa?
Lisätietoa
Kaikissa koneissa on Ubuntu 13.10 64 bit, kiinteä IP-osoite ja yhteystyyppinä WLAN. Ubuntussa sekä verkkotekniikassa olen ihan perustietokonekäyttäjän tasolla ja englannin taitoa ei ole ollenkaan.
edit: Parantelin ohjeitani.
-
Oikein havainnollinen ohje!
hosts.allow:portmap: 192.168.11.1/255.255.255.0 192.168.11.2/255.255.255.0 192.168.11.3/255.255.255.0 192.168.11.4/255.255.255.0 192.168.11.5/255.255.255.0 192.168.11.6/255.255.255.0 192.168.11.7/255.255.255.0 192.168.11.8/255.255.255.0
192.168.11.1/255.255.255.0 -määritys kattaa osoitteet 192.168.11.1 - 192.168.11.254.
Jos haluat sallia vain yksittäisiä osoitteita, laita hosts.allow-tiedostoon pelkät osoitteet:
portmap: 192.168.11.1 192.168.11.4 192.168.11.7
Netmaskin avulla voi tarvittaessa määritellä tiettyjä välejä perustuen osoitteiden binääriesityksiin.
Esimerkiksi 192.168.11.32/255.255.255.248 (tai lyhyemmin 192.168.11.32/29) (http://jodies.de/ipcalc?host=192.168.11.32&mask1=29&mask2=) määrittelee aliavaruuden 192.168.11.33 - 192.168.11.38
Tässä eräs suomenkielinen artikkeli aiheesta: http://simojarvinen.net/aliverkot.html
Lisää tietoa löytyy yliopistojen tietoliikennekurssien materiaalista ja tietoverkkoja käsittelevistä kirjoista.
sudo chmod 777 /home/kayttaja_A1/Jaettava_kansio_A1
chmod 777 antaa kaikille järjestelmän käyttäjätunnuksille kirjoitusoikeuden tuohon hakemistoon. Se on hieman vaarallista, mutta toisaalta nykymaailmassa suurin riski tulee joka tapauksessa käyttäjän oman tunnuksen kautta, jos esimerkiksi selaimen tietoturva-aukko mahdollistaa tunnuksen etäkäytön.
Jos lähiverkon koneilla on käyttäjiä, joihin ei voi täysin luottaa, hieman turvallisempaa olisi hyödyntää käyttäjäryhmiä tai käyttää tiedostojärjestelmän ja NFSv4:n pääsylistoja (ACL) (http://linux.fi/wiki/Tiedostoj%C3%A4rjestelm%C3%A4n_p%C3%A4%C3%A4sylistat_%28ACL%29). Seuraava askel on sitten Kerberos ja LDAP, jotka mahdollistavat verkkojakojen suojaamisen myös turvattomissa laiteympäristössä; periaatteessa jopa Internetin yli.
exports:/home/kayttaja_A1/Jaettava_kansio_A1 192.168.11.0/255.255.255.0(rw)
Nykyiset NFS-palvelinversiot haluavat tuohon rw:n lisäksi lisämääritteitä. (rw,sync,no_subtree_check) riittänee.
1. Saako hakemistopolut johtaa mihin vaan kuten ohjeissani?
Kyllä.
3. Saako "exports"-tiedostoon määriteltyä pelkästään "hosts.allow"-tiedostossa mainitut IP-osoitteet?
Voi sinne määritellä muitakin, mutta hosts.deny ja hosts.allow rajaavat osoitteet, joista tulevat paketit välitetään NFS-palvelinprosessille. Exports-tiedosto on sitten seuraava paikka rajata palveltavia koneita liitoskohtaisesti. Itse en käytä kotiverkossa hosts.* -tiedostoja vaan määrittelen koko lähiverkon kattavan 192.168.1.1/24 -avaruuden exports-tiedostossa.
5. Ei ole mitään merkitystä onko tietokoneissa eri- vai samanniminen käyttäjä?
Nimillä ei ole väliä. Perinteisesti NFS käyttää vain UID ja GID -tunnisteita, eli jos yhdessä koneessa on tunnus jussi (UID 1001, GID 1001) ja toisessa koneessa elina (UID 1001, GID 1001), NFS:n mielestä kyseessä on sama käyttäjä ja molemmilla on oikeudet toistensa tiedostoihin NFS-jaoissa.
6. Onko ohjeissani muuta korjattavaa, parannettavaa, säädettävää tai huomioitavaa?
Autofs:ään kannattaisi tutustua seuraavaksi. Se on ainakin omassa käytössäni ollut aina tarpeen NFS:n kanssa, kun koneita sammutellaan tai ne häviävät verkosta. Olen joskus kirjoitellut ohjeen aiheesta: http://forum.ubuntu-fi.org/index.php?topic=41065.msg316806#msg316806 (viesti on aika pitkä ja alussa on juttua Sambasta, ja Apachesta joten skrollaa alaspäin).
Käytän myös sshfs:ää, joka toimii oikeilla asetuksilla nopeasti ja turvallisesti myös netin yli, mutta se menee jo tämän aiheen ulkopuolelle.
Ubuntussa sekä verkkotekniikassa olen ihan perustietokonekäyttäjän tasolla ja englannin taitoa ei ole ollenkaan.
Jatka ihmeessä opiskelua, jos aihepiiri kiinnostaa! Suomeksikin löytyy paljon hyvää informaatiota eri lähteistä. Verkkotekniikan osalta kannattaa tosiaan selailla yliopistojen ja ammattikorkeakoulujen peruskurssien materiaalia.
-
Peruskäyttö ? Olisikohan tästä mitään apua idean hahmottamiseen ennen mitään monimutkaisempaa:
http://forum.ubuntu-fi.org/index.php?topic=36368.msg285194#msg285194 (http://forum.ubuntu-fi.org/index.php?topic=36368.msg285194#msg285194)
-
chmod 777 antaa kaikille järjestelmän käyttäjätunnuksille kirjoitusoikeuden tuohon hakemistoon. Se on hieman vaarallista, mutta toisaalta nykymaailmassa suurin riski tulee joka tapauksessa käyttäjän oman tunnuksen kautta, jos esimerkiksi selaimen tietoturva-aukko mahdollistaa tunnuksen etäkäytön.
Jos lähiverkon koneilla on käyttäjiä, joihin ei voi täysin luottaa, hieman turvallisempaa olisi hyödyntää käyttäjäryhmiä tai käyttää tiedostojärjestelmän ja NFSv4:n pääsylistoja (ACL) (http://linux.fi/wiki/Tiedostoj%C3%A4rjestelm%C3%A4n_p%C3%A4%C3%A4sylistat_%28ACL%29).
Perinteisesti NFS käyttää vain UID ja GID -tunnisteita, eli jos yhdessä koneessa on tunnus jussi (UID 1001, GID 1001) ja toisessa koneessa elina (UID 1001, GID 1001), NFS:n mielestä kyseessä on sama käyttäjä ja molemmilla on oikeudet toistensa tiedostoihin NFS-jaoissa.
Kaikilla kyseisillä käyttäjillä on Ubuntun oletus UID (1000) ja GID (1000). Onko siinä jotain negatiivisia puolia? Ja "chmod"-komentoa ei tarvitse antaa ollenkaan?
(rw,sync,no_subtree_check) riittänee.
Eikös sync aiheuta varoituksen ja no_subtree_check mahdollista asiakkaiden päästä käsiksi jaetun kansion ulkopuolisiin tiedostoihin? Linux.fi (http://linux.fi/wiki/NFS#.2Fetc.2Fexports).
Voi sinne määritellä muitakin, mutta hosts.deny ja hosts.allow rajaavat osoitteet, joista tulevat paketit välitetään NFS-palvelinprosessille.
Tarkoitin, että voiko määritellä tyyliin:/home/kayttaja_A1/Jaettava_kansio_A1 192.168.11.1 192.168.11.2 192.168.11.3 192.168.11.4 192.168.11.5 192.168.11.6 192.168.11.7 192.168.11.8(rw)
/media/kayttaja_A1/Toinen_kiintolevy/Jaettava_kansio_B2 192.168.11.1 192.168.11.2 192.168.11.3 192.168.11.4 192.168.11.5 192.168.11.6(rw)
Tein muutoksia aloitusviestiini, miltä ohjeeni nyt näyttää?
-
chmod 777 antaa kaikille järjestelmän käyttäjätunnuksille kirjoitusoikeuden tuohon hakemistoon. Se on hieman vaarallista, mutta toisaalta nykymaailmassa suurin riski tulee joka tapauksessa käyttäjän oman tunnuksen kautta, jos esimerkiksi selaimen tietoturva-aukko mahdollistaa tunnuksen etäkäytön.
Jos lähiverkon koneilla on käyttäjiä, joihin ei voi täysin luottaa, hieman turvallisempaa olisi hyödyntää käyttäjäryhmiä tai käyttää tiedostojärjestelmän ja NFSv4:n pääsylistoja (ACL) (http://linux.fi/wiki/Tiedostoj%C3%A4rjestelm%C3%A4n_p%C3%A4%C3%A4sylistat_%28ACL%29).
Perinteisesti NFS käyttää vain UID ja GID -tunnisteita, eli jos yhdessä koneessa on tunnus jussi (UID 1001, GID 1001) ja toisessa koneessa elina (UID 1001, GID 1001), NFS:n mielestä kyseessä on sama käyttäjä ja molemmilla on oikeudet toistensa tiedostoihin NFS-jaoissa.
Kaikilla kyseisillä käyttäjillä on Ubuntun oletus UID (1000) ja GID (1000). Onko siinä jotain negatiivisia puolia?
Haluatko, että käyttäjillä on oikeudet toistensa tiedostoihin?
-
[Haluatko, että käyttäjillä on oikeudet toistensa tiedostoihin?
Haluan, että kyseisillä käyttäjillä on täydet oikeudet omiinsa ja toistensa kansioihin ja tiedostoihin, mutta pääsy käsiksi vain omalla koneella tai kyseisissä jaetuissa kansioissa oleviin kansioihin ja tiedostoihin ja että sudoa vaativia toimenpiteitä voi tehdä vain kyseiselle koneelle.
-
Kaikilla kyseisillä käyttäjillä on Ubuntun oletus UID (1000) ja GID (1000). Onko siinä jotain negatiivisia puolia? Ja "chmod"-komentoa ei tarvitse antaa ollenkaan?
Haluan, että kyseisillä käyttäjillä on täydet oikeudet omiinsa ja toistensa kansioihin ja tiedostoihin, mutta pääsy käsiksi vain omalla koneella tai kyseisissä jaetuissa kansioissa oleviin kansioihin ja tiedostoihin ja että sudoa vaativia toimenpiteitä voi tehdä vain kyseiselle koneelle.
Tällöin et tarvitse mitään lisäasetuksia ja chmod 777 on turha. Muissakin tapauksissa 777 on liian laaja ja sen sijaan pitäisi määritellä käyttäjäryhmiä tai käyttää ACL:iä.
(rw,sync,no_subtree_check) riittänee.
Eikös sync aiheuta varoituksen
Ubuntu 12.04:ssä ei aiheuta varoitusta, mutta ehkä uudemmissa versioissa sellainen on lisätty? Varoittaako 13.10?
Aiemmin oletuksena oli syncin sijaan async ja oletuksen vaihtumisen jälkeen exportfs varoitti valitsimen puuttumisesta. Kokeilin juuri 12.04:ssä ja siinäkin syncin voi näemmä jo jättää pois.
ja no_subtree_check mahdollista asiakkaiden päästä käsiksi jaetun kansion ulkopuolisiin tiedostoihin? Linux.fi (http://linux.fi/wiki/NFS#.2Fetc.2Fexports).
Periaatteessa kyllä, mutta jopa exportsin manuaalisivu (http://manpages.ubuntu.com/manpages/saucy/man5/exports.5.html) ohjeistaa, että subtree_checkistä aiheutuvat ongelmat rw-liitoksissa ovat merkittävämpiä kuin saavutettu turvallisuudentunne.
no_subtree_check on oletus (eli sillä mennään jos määrittelet parametreiksi vain rw:n). Ainakin vielä 12.04:ssä exportfs valittaa, jos sitä tai subtree_checkiä ei ole erikseen määritelty:
$ sudo /etc/init.d/nfs-kernel-server start
* Exporting directories for NFS kernel daemon...
exportfs: /etc/exports [2]: Neither 'subtree_check' or 'no_subtree_check' specified for export "192.168.1.0/24:/home".
Assuming default behaviour ('no_subtree_check').
NOTE: this default has changed since nfs-utils version 1.0.x
Voi sinne määritellä muitakin, mutta hosts.deny ja hosts.allow rajaavat osoitteet, joista tulevat paketit välitetään NFS-palvelinprosessille.
Tarkoitin, että voiko määritellä tyyliin:/home/kayttaja_A1/Jaettava_kansio_A1 192.168.11.1 192.168.11.2 192.168.11.3 192.168.11.4 192.168.11.5 192.168.11.6 192.168.11.7 192.168.11.8(rw)
/media/kayttaja_A1/Toinen_kiintolevy/Jaettava_kansio_B2 192.168.11.1 192.168.11.2 192.168.11.3 192.168.11.4 192.168.11.5 192.168.11.6(rw)
(rw) pitää olla jokaisen osoitemäärityksen perässä:
/home/kayttaja_A1/Jaettava_kansio_A1 192.168.11.1(rw) 192.168.11.2(rw) 192.168.11.3(rw)
Tein muutoksia aloitusviestiini, miltä ohjeeni nyt näyttää?
Näyttää ihan hyvältä.
Autofs:n kanssa ei sitten ole välttämätöntä määritellä liitoksia yksitellen. /etc/auto.net sisältää skriptin, joka käyttää showmount-työkalua käytettävissä olevien liitosten automaattiseen havaitsemiseen. Koneita se ei sen sijaan löydä automaattisesti, mutta riittää että teet symboliset linkit autofs:n hakemistosta. Esimerkki tähän on siinä aiemmin linkittämässäni ohjeessa.
-
Esimerkki tähän on siinä aiemmin linkittämässäni ohjeessa.
En millään kykene muokkaamaan ohjettasi tapaukseeni. Tässä paras aikaansaannokseni :D
Tietokone A2
pääte:sudo apt-get install nfs-common
sudo mkdir /home/kayttaja_B2/Jaettava_kansio_A1
sudo mkdir /home/kayttaja_B2/Jaettava_kansio_B2
sudo apt-get install autofs
sudo nano /etc/auto.master
auto.master:/home/kayttaja_B2/Jaettava_kansio_A1 /etc/auto.Jaettava_kansio_A1 --timeout=60,fstype=nfs,users,rw,auto,rsize=8192,wsize=8192,timeo=14,hard,intr
/home/kayttaja_B2/Jaettava_kansio_B2 /etc/auto.Jaettava_kansio_B2 --timeout=60,fstype=nfs,users,rw,auto,rsize=8192,wsize=8192,timeo=14,hard,intr
pääte:sudo ln -s /home/kayttaja_B2/Jaettava_kansio_A1/192.168.11.3:/home/kayttaja_A1/Jaettava_kansio_A1 /home/kayttaja_B2/Jaettava_kansio_A1
sudo ln -s /home/kayttaja_B2/Jaettava_kansio_B2/192.168.11.3:/media/kayttaja_A1/Toinen_kiintolevy/Jaettava_kansio_B2 /home/kayttaja_B2/Jaettava_kansio_B2
sudo restart autofs
Eli tarkoituksenani on, että kun Tietokoneella A1 tallennetaan tiedosto kansioon /media/kayttaja_A1/Toinen_kiintolevy/Jaettava_kansio_B2
, niin sen voi aukaista Tietokoneella B2 kansiosta/home/kayttaja_B2/Jaettava_kansio_B2
ja jos vain mahdollista tehden tämän NFS:llä ilman koneiden nimiä, IP-osoitteita käyttäen.
-
Eli tarkoituksenani on, että kun Tietokoneella A1 tallennetaan tiedosto kansioon /media/kayttaja_A1/Toinen_kiintolevy/Jaettava_kansio_B2
, niin sen voi aukaista Tietokoneella B2 kansiosta/home/kayttaja_B2/Jaettava_kansio_B2
ja jos vain mahdollista tehden tämän NFS:llä ilman koneiden nimiä, IP-osoitteita käyttäen.
AutoFS:n asennus
sudo apt-get install nfs-common
sudo apt-get install autofs
Avaa auto.master-tiedosto tekstieditorilla:
sudo nano /etc/auto.master
Kopioi sisällöksi tämä:
/var/autofs/net /etc/auto.net
Tallenna (Ctrl+O) ja sulje editori (Ctrl+X).
Luo hakemisto autofs:n liitoksille:
sudo mkdir /var/autofs
Käynnistä autofs uudelleen:
sudo service autofs restart
Tässä vaiheessa voit tutkia päätteessä cd ja ls -komennoilla, miten liitokset toimivat. Jos nyt listaat hakemiston /var/autofs/net sisällön, siellä ei näy aluksi mitään. Voit kuitenkin listata suoraan hakemiston /var/autofs/net/192.168.11.3/ jossa pitäisi näkyä kaikki koneen 192.168.11.3 jaetut hakemistot. Itse käyttäisin kyllä koneiden nimiä IP-osoitteiden sijaan jo pelkästään selkeyden vuoksi.
Kun homma toimii, voit luoda linkin liitokseen. Esimerkiksi tietokoneella B2:
ln -s /var/autofs/net/192.168.11.3/media/kayttaja_A1/Toinen_kiintolevy/Jaettava_kansio_B2 /home/kayttaja_B2/Liitos_B2
Korjaus polkuihin: /var/autofs/192.168.11.3 -> /var/autofs/net/192.168.11.3
-
Luulin jo teorian oppineeni ja siirryin käytännön harjoituksiin. Ensimmäiset virheet tajusin itse: Jaettavat kansiot pitää luoda tavallisena käyttäjänä tai antaa chmod ja liitoksen polkuun tulee lisää toi net. Mutta sitten tuli seinä vastaan:
kayttaja_B2@Tietokone_B2:/var/autofs/net/192.168.11.3/home/kayttaja_A1$ ls
Jaettava_kansio_A1
kayttaja_B2@Tietokone_B2:/var/autofs/net/192.168.11.3/home/kayttaja_A1$ cd Jaettava_kansio_A1
bash: cd: Jaettava_kansio_A1: Tiedostoa tai hakemistoa ei ole
Itse käyttäisin kyllä koneiden nimiä IP-osoitteiden sijaan jo pelkästään selkeyden vuoksi.
IP-osoitteethan ovat paljon selkeämpiä: jos webistä esimerkiksi etsii tietoa ja vastaan tulee:
- 192.168.11.1: IP-osoite, todennäköisesti reitittimen tai vastaavan
- net: onko tämä koneen, käyttäjän, kansion tai tiedoston nimi vai komento, tiedostopääte vai joku muu
ja jos taas myöhemmin tulee ongelmia tai joutuu tekemään muutoksia:
- 192.168.11.6: emännän kannettavan IP-osoite
- Sauli: onko tämä koneen, käyttäjän, kansion vai tiedoston nimi ja miltä laitteelta
Ja maalaisjärjellä ajateltuna (tosin vain teoreettisesti) IP-osoitetta käyttävä resurssi on toiminta varmempi, luotettavampi ja nopeampi. Onko se näin (teoreettisesti)?
edit: Jaettava_kansio_A1 eikä Jaettava_kansio_B2
-
Luulin jo teorian oppineeni ja siirryin käytännön harjoituksiin. Ensimmäiset virheet tajusin itse: Jaettavat kansiot pitää luoda tavallisena käyttäjänä tai antaa chmod ja liitoksen polkuun tulee lisää toi net.
Juu, se unohtui pois sieltä polusta.
Mutta sitten tuli seinä vastaan:
kayttaja_B2@Tietokone_B2:/var/autofs/net/192.168.11.3/home/kayttaja_A1$ ls
Jaettava_kansio_B2
kayttaja_B2@Tietokone_B2:/var/autofs/net/192.168.11.3/home/kayttaja_A1$ cd Jaettava_kansio_B2
bash: cd: Jaettava_kansio_B2: Tiedostoa tai hakemistoa ei ole
Toimiiko jako kuitenkin toimii normaalisti, jos yrität liittää sen suoraan?
sudo mount -t nfs 192.168.11.3:/home/kayttaja_A1/Jaettava_kansio_B2 /mnt
Jos saat tällaisen virheen: mount.nfs: access denied by server while mounting 192.168.11.3:/home/kayttaja_A1/Jaettava_kansio_B2
ongelmana on mahdollisesti se, että NFS-palvelin ei pääse jaettavaan hakemistoon oikeuksin nobody:nobody. Eli käytännössä koneella 192.168.11.3 hakemiston /home/kayttaja_A1 oikeudet estävät ketä tahansa kulkemasta hakemiston alihakemistoihin. Kokeile antaa kaikille käyttäjille suoritusoikeus (eli hakemiston tapauksessa läpikulkuoikeus) komennolla:
chmod a+X /home/kayttaja_A1
Ja maalaisjärjellä ajateltuna (tosin vain teoreettisesti) IP-osoitetta käyttävä resurssi on toiminta varmempi, luotettavampi ja nopeampi. Onko se näin (teoreettisesti)?
Onhan se hieman varmempi niin kauan kuin osoite pysyy samana tai kun on ylipäänsä mahdollista käyttää kiinteitä osoitteita kaikille laitteille. IP-osoite ei riipu mistään keskitetystä nimipalvelusta, jonka kaatuminen häiritsisi sitten kaikkia yhteyksiä.
Minulla on jokaisella koneella lyhyt nimi (1 - 2 kirjainta), jonka muistan. Voihan se olla vaikka "dell" tai "mac", niin jo pelkästä nimestä selviää, mistä laitteesta on kyse. Käytän jatkuvasti ssh:ta ja muita verkkoyhteyksiä koneiden välillä, joten IP-osoitteiden naputtelu olisi pidemmän päälle turhan työlästä. Lisäksi koneen IP-osoite vaihtuu, jos kone kytketään verkkoon välillä ethernetin kautta ja välillä langattomasti.
Nimet toki vaativat paikallisen DNS:n. Itse käytän dnsmasqia: http://forum.ubuntu-fi.org/index.php?topic=45623.msg352823#msg352823
-
Toimiiko jako kuitenkin toimii normaalisti, jos yrität liittää sen suoraan?
Ei toimi, tulee toi virhe. Ja tuolla chmod-komennolla ei mikään muutu. Ja kun yrittää cd-komennolla, se miettii hetken oikealla kansion nimellä ja muilla antaa saman virheilmoituksen heti.
-
Kokeile käynnistää NFS-palvelin uudelleen:
sudo service nfs-kernel-server restart
Näytä palvelimen puolelta nämä:
ls -la /home
ls -la /home/kayttaja_A1/Jaettava_kansio_B2/
cat /etc/exports
-
Näytä palvelimen puolelta nämä:
kayttaja_A1@Tietokone_1:~$ ls -la /home
yhteensä 16
drwxr-xr-x 4 root root 4096 tammi 31 19:57 .
drwxr-xr-x 23 root root 4096 tammi 31 20:23 ..
drwx--x--x 19 kayttaja_A1 kayttaja_A1 4096 helmi 5 16:54 kayttaja_A1
drwxrwxr-x 3 root root 4096 tammi 31 19:57 .ecryptfs
kayttaja_A1@Tietokone_1:~$ ls -la /home/kayttaja_A1/Jaettava_kansio_A1
yhteensä 8
drwxrwxrwx 2 root root 4096 helmi 5 15:23 . <-- SININEN PISTE VIHREÄSSÄ LAATIKOSSA, MUISSA RIVEISSÄ ON VAIN SINISELLÄ FONTILLA ILMAN LAATIKKOA.
drwx--x--x 19 kayttaja_A1 kayttaja_A1 4096 helmi 5 16:54 ..
kayttaja_A1@Tietokone_1:~$ cat /etc/exports
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
/home/kayttaja_A1/Jaettava_kansio_A1 192.168.11.5(rw,sync,no_subtree_check)
/media/kayttaja_A1/Toinen_kiintolevy/Jaettava_kansio_B2 192.168.11.5(rw,sync,no_subtree_check)
-
Onko listaus nyt koneelta 192.168.11.3? Siellä on nimittäin Jaettava_kansio_A1, kun aiemmin hakemistossa /var/autofs/net/192.168.11.3 näkyi Jaettava_kansio_B2.
-
Onko listaus nyt koneelta 192.168.11.3?
On, vastaukseen #9 olin laittanut virheellisesti Jaettava_kansio_B2, mutta käsittelin ohjeesi Jaettava_kansio_A1:senä.
-
Onko asiakaskoneen osoite nyt 192.168.1.5 (joka on ainoa sallittu osoite palvelimen exports-tiedostossa)? Voisit kokeilla väliaikaisesti sallia exportsissa kaikki asiakkaat:
/home/kayttaja_A1/Jaettava_kansio_A1 *(rw,sync,no_subtree_check)
Muista käynnistää nfs-palvelin uudelleen muutoksen jälkeen.
/etc/hosts.allow ja /etc/hosts.deny -tiedostojen säännöt voisi myös väliaikaisesti kommentoida pois käytöstä.
-
Onko asiakaskoneen osoite nyt 192.168.1.5 (joka on ainoa sallittu osoite palvelimen exports-tiedostossa)?
On.
Voisit kokeilla väliaikaisesti sallia exportsissa kaikki asiakkaat:
Ei muutosta tilanteeseen.
/etc/hosts.allow ja /etc/hosts.deny -tiedostojen säännöt voisi myös väliaikaisesti kommentoida pois käytöstä.
Olin jo ottanut.
Eihän reitittimen asetukset, Ubuntun palomuuri tai kiintolevyn tai kotiosion kryptaus voi vaikuttaa, kun asiakaskoneelta pääsee noin pitkälle jakavaan koneeseen?
-
Kryptaus saattaisi hyvinkin aiheuttaa ongelmia. Toimiiko joku toinen jako, joka ei ole kryptatulla levyllä?
-
Toimiiko joku toinen jako, joka ei ole kryptatulla levyllä
Kryptattuna ei ole kuin FAT-muodossa oleva muistitikku ja sillä sama juttu, vaikka kuinka pitkän polun pääsee, muttei itse jaettavan kansion sisälle.
-
Kryptattuna ei ole kuin FAT-muodossa oleva muistitikku
Siis kryptaamatta on vain se tikku ja kaikki muu on kryptattua? Mikään jako ei enää toimi millään tavalla liitettynä, vaikka aiemmin toimi? Mikähän siellä on muuttunut..?
vaikka kuinka pitkän polun pääsee, muttei itse jaettavan kansion sisälle ei.
Palvelin saa polun exports-tiedostosta ja näyttää sen asiakkaille. Se ei kuitenkaan tarkoita, että polku olisi käytettävissä tai että palvelinprosessi pääsee polun päähän saakka. Nyt ilmeisesti ei pääse.
-
Siis kryptaamatta on vain se tikku ja kaikki muu on kryptattua?
Juu, kaikki kiintolevyt on suojattu Linux (Bootable) -osioita lukuun ottamatta LUKS Encryption -salauksella ja home-kansiot vielä erikseen.
Mikään jako ei enää toimi millään tavalla liitettynä, vaikka aiemmin toimi?
NFS:n kautta kaikki on kokoajan tyssännyt samaan kohtaan, kaikilla tietokoneilla kyllä pääsee kaikkiin niissä fyysisesti kytkettynä oleviin. Jaoin siis Tietokoneella_1 olevassa muistitikussa olevan kansion NFS:llä ja Tietokoneesta_2 kun otti yhteyttä, niin tyssäsi samaan paikkaan.
-
Mikä palomuuri järjestelmissä on ja millaiset asetukset siinä on? Toimiiko, jos sammutat palomuurin?
-
Mikä palomuuri järjestelmissä on ja millaiset asetukset siinä on? Toimiiko, jos sammutat palomuurin?
Valoa pimeyteen:
sudo mkdir /a
sudo chmod 777 /a
+
/a *(rw,sync,no_subtree_check)
Ja sain yhteyden kansioon. Mutta miten tästä eteenpäin, kokeilenko aina yhden kansion eteenpäin?
Tarvitseeko vielä perehtyä palomuureihin?
edit:
/a = toimii
/home/a = toimii
/media/a = toimii
/home/kayttaja_A1/a = ei toimi
/media/kayttaja_A1/a = ei toimi
/media/kayttaja_A1/Toinen_kiintolevy/a = ei toimi
-
Entä jos muutat /home/kayttaja_A1 -hakemiston oikeuksia niin, että kaikki voivat lukea sitä:
chmod a+r /home/kayttaja_A1
Ei kyllä pitäisi vaatia tätä...
-
Ei kyllä pitäisi vaatia tätä...
Eikä auttanutkaan. Koskeekohan kotikansion salaus kansiota /media/kayttaja_A1?
edit: Kokeilin Live-CD:llä ja /media/kayttaja_A1-kansioon pystyi luomaan kansion ilman kotikansion salauksen purkamista.
-
Koska kotikansiossa olevaa kansiota ei näytä saavan jaettua, ainakin yritin aamulla säätää asetukset alkuperäisiksi ja tein sen jälkeen jaot viestin lopussa esitellyllä tavalla. Olenko optimoinut jaot parhaalla mahdollisella tavalla, jos prioriteetit tärkeysjärjestyksessä ovat:
1. siirrettävää dataa ei ole mahdollista menettää
2. siirtonopeus
3. tietoturva
Varoittaako 13.10?
Mikään parametreistä rw, sync ja no_subtree_check ei aiheuta varoitusta mukana ollessaan ja ainoastaan no_subtree_check aiheuttaa varoituksen puuttuessaan.
Palvelinkoneen säätäminen:
kayttaja_A1@Tietokone_A1:~$ mkdir /media/kayttaja_A1/Toinen_kiintolevy/Jaettava_kansio_B2
kayttaja_A1@Tietokone_A1:~$ sudo mkdir /Jaettava_kansio_A1
[sudo] password for kayttaja_A1:
kayttaja_A1@Tietokone_A1:~$ sudo chown kayttaja_A1:kayttaja_A1 /Jaettava_kansio_A1
kayttaja_A1@Tietokone_A1:~$ sudo chmod 751 /media/kayttaja_A1
kayttaja_A1@Tietokone_A1:~$ sudo nano /etc/hosts.deny
kayttaja_A1@Tietokone_A1:~$ cat /etc/hosts.deny
# /etc/hosts.deny: list of hosts that are _not_ allowed to access the system.
# See the manual pages hosts_access(5) and hosts_options(5).
#
# Example: ALL: some.host.name, .some.domain
# ALL EXCEPT in.fingerd: other.host.name, .other.domain
#
# If you're going to protect the portmapper use the name "portmap" for the
# daemon name. Remember that you can only use the keyword "ALL" and IP
# addresses (NOT host or domain names) for the portmapper, as well as for
# rpc.mountd (the NFS mount daemon). See portmap(8) and rpc.mountd(8)
# for further information.
#
# The PARANOID wildcard matches any host whose name does not match its
# address.
#
# You may wish to enable this to ensure any programs that don't
# validate looked up hostnames still leave understandable logs. In past
# versions of Debian this has been the default.
# ALL: PARANOID
portmap: ALL
kayttaja_A1@Tietokone_A1:~$ sudo nano /etc/hosts.allow
kayttaja_A1@Tietokone_A1:~$ cat /etc/hosts.allow
# /etc/hosts.allow: list of hosts that are allowed to access the system.
# See the manual pages hosts_access(5) and hosts_options(5).
#
# Example: ALL: LOCAL @some_netgroup
# ALL: .foobar.edu EXCEPT terminalserver.foobar.edu
#
# If you're going to protect the portmapper use the name "portmap" for the
# daemon name. Remember that you can only use the keyword "ALL" and IP
# addresses (NOT host or domain names) for the portmapper, as well as for
# rpc.mountd (the NFS mount daemon). See portmap(8) and rpc.mountd(8)
# for further information.
#
portmap: 192.168.11.1 192.168.11.2 192.168.11.3 192.168.11.4 192.168.11.5 192.168.11.6 192.168.11.7 192.168.11.8
kayttaja_A1@Tietokone_A1:~$ sudo apt-get install nfs-kernel-server
Luetaan pakettiluetteloita... Valmis
Muodostetaan riippuvuussuhteiden puu
Luetaan tilatiedot... Valmis
nfs-kernel-server on jo uusin versio.
0 päivitetty, 0 uutta asennusta, 0 poistettavaa ja 2 päivittämätöntä.
kayttaja_A1@Tietokone_A1:~$ sudo nano /etc/exports
kayttaja_A1@Tietokone_A1:~$ cat /etc/exports
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
/Jaettava_kansio_A1 192.168.11.1(rw,sync,no_subtree_check) 192.168.11.2(rw,sync,no_subtree_check) 192.168.11.3(rw,sync,no_subtree_check) 192.168.11.4(rw,sync,no_subtree_check) 192.168.11.5(rw,sync,no_subtree_check) 192.168.11.6(rw,sync,no_subtree_check) 192.168.11.7(rw,sync,no_subtree_check) 192.168.11.8(rw,sync,no_subtree_check)
/media/kayttaja_A1/Toinen_kiintolevy/Jaettava_kansio_B2 192.168.11.1(rw,sync,no_subtree_check) 192.168.11.2(rw,sync,no_subtree_check) 192.168.11.3(rw,sync,no_subtree_check) 192.168.11.4(rw,sync,no_subtree_check) 192.168.11.5(rw,sync,no_subtree_check) 192.168.11.6(rw,sync,no_subtree_check) 192.168.11.7(rw,sync,no_subtree_check) 192.168.11.8(rw,sync,no_subtree_check)
kayttaja_A1@Tietokone_A1:~$ sudo //etc/init.d/nfs-kernel-server restart
* Stopping NFS kernel daemon [ OK ]
* Unexporting directories for NFS kernel daemon... [ OK ]
* Exporting directories for NFS kernel daemon... [ OK ]
* Starting NFS kernel daemon [ OK ]
Asiakaskoneen säätäminen:
kayttaja_B2@Tietokone_B2:~$ sudo apt-get install nfs-common autofs
[sudo] password for kayttaja_B2:
Luetaan pakettiluetteloita... Valmis
Muodostetaan riippuvuussuhteiden puu
Luetaan tilatiedot... Valmis
autofs on jo uusin versio.
nfs-common on jo uusin versio.
0 päivitetty, 0 uutta asennusta, 0 poistettavaa ja 2 päivittämätöntä.
kayttaja_B2@Tietokone_B2:~$ sudo nano /etc/auto.master
kayttaja_B2@Tietokone_B2:~$ cat /etc/auto.master
#
# Sample auto.master file
# This is an automounter map and it has the following format
# key [ -mount-options-separated-by-comma ] location
# For details of the format look at autofs(5).
#
#/misc /etc/auto.misc
#
# NOTE: mounts done from a hosts map will be mounted with the
# "nosuid" and "nodev" options unless the "suid" and "dev"
# options are explicitly given.
#
#/net -hosts
#
# Include /etc/auto.master.d/*.autofs
#
+dir:/etc/auto.master.d
#
# Include central master map if it can be found using
# nsswitch sources.
#
# Note that if there are entries for /net or /misc (as
# above) in the included master map any keys that are the
# same will not be seen as the first read key seen takes
# precedence.
#
+auto.master
/var/autofs/net /etc/auto.net
kayttaja_B2@Tietokone_B2:~$ sudo mkdir /var/autofs
kayttaja_B2@Tietokone_B2:~$ sudo service autofs restart
autofs stop/waiting
autofs start/running, process 2599
Palvelinkoneen testaaminen:
kayttaja_A1@Tietokone_A1:~$ mkdir /Jaettava_kansio_A1/TestiA1 /media/kayttaja_A1/Toinen_kiintolevy/Jaettava_kansio_B2/TestiB2
Asiakaskoneen testaaminen:
kayttaja_B2@Tietokone_B2:~$ mkdir /var/autofs/net/192.168.11.3/Jaettava_kansio_A1/TestiC3 /var/autofs/net/192.168.11.3/media/kayttaja_A1/Toinen_kiintolevy/Jaettava_kansio_B2/TestiD4
Palvelinkoneen käyttöoikeudet:
kayttaja_A1@Tietokone_A1:~$ ls -dl /Jaettava_kansio_A1
drwxr-xr-x 4 kayttaja_A1 kayttaja_A1 4096 helmi 7 06:17 /Jaettava_kansio_A1
kayttaja_A1@Tietokone_A1:~$ ls -dl /media
drwxr-xr-x 3 root root 4096 helmi 6 19:00 /media
kayttaja_A1@Tietokone_A1:~$ ls -dl /media/kayttaja_A1/
drwxr-x--x+ 3 root root 4096 helmi 7 06:10 /media/kayttaja_A1/
kayttaja_A1@Tietokone_A1:~$ ls -dl /media/kayttaja_A1/Toinen_kiintolevy
drwx-----x 6 kayttaja_A1 kayttaja_A1 4096 helmi 7 06:00 /media/kayttaja_A1/Toinen_kiintolevy
kayttaja_A1@Tietokone_A1:~$ ls -dl /media/kayttaja_A1/Toinen_kiintolevy/Jaettava_kansio_B2
drwxr-xr-x 4 kayttaja_A1 kayttaja_A1 4096 helmi 7 06:17 /media/kayttaja_A1/Toinen_kiintolevy/Jaettava_kansio_B2
kayttaja_A1@Tietokone_A1:~$ ls -dl /home
drwxr-xr-x 4 root root 4096 helmi 6 19:01 /home
kayttaja_A1@Tietokone_A1:~$ ls -dl /home/kayttaja_A1
drwx------ 18 kayttaja_A1 kayttaja_A1 4096 helmi 7 06:10 /home/kayttaja_A1