Doporučujeme nainstalovat nfs-utils verze 1.1.0 nebo vyšší. Na debianu jde o balíček nfs-common (apt-get install nfs-common). Na opensuse jde o balíček nfs-utils (yast -i nfs-utils) (OpenSuse nižší než 10.3). Na opensuse 10.3 a vyšších jde o balíček nfs-client (yast -i nfs-client
Zároveň budete potřebovat běžící portmap. Měl by se nainstalovat v závislostech na nfs-utils. V opačném případě jde o stejnojmenný balíček (tj. portmap).
Nastavení nfs-utils je v souboru /etc/default/nfs-common. Nastavíme hodnoty následovně:
NEED_STATD=yes STATDOPTS= NEED_IDMAPD=yes NEED_GSSD=yesV případě, že chcete pro připojení svazku použít svůj vlastní lístek, přidáme ještě řádek:
RPCGSSDOPTS="-n"
Nastavení nfs-utils je v souboru /etc/sysconfig/nfs. Nastavíme alespoň tyto hodnoty:
NFS_SECURITY_GSS="yes" NFS4_SUPPORT="yes"
V případě, že chcete pro připojení svazku použít svůj vlastní lístek, musíme editovat skript /etc/init.d/gssd a každý text /usr/sbin/rpc.gssd nahradit textem /usr/sbin/rpc.gssd -n. Bohužel upgrade balíčku nfs-utils tuto změnu přepíše a bude ji potřeba udělat znovu.
Je nutné zajistit, aby startovaly tyto služby: (opensuse 10.3 ma pouze první službu, starší opensuse mají i ostatní služby a v tom případe je nutné spouštět všechny.)
Soubor /etc/idmapd.conf nastavuje mapování NFSv4 identit na lokální uživatele (NFSv4 pracuje s textovými principály kerbera, POSIX rozhraní file systému pracuje s číselnou reprezentací uživatelů a skupin).
Jednoduché nastavení /etc/idmapd.conf spočívá v nastavení konfiguračního řádku: Domain = META. Pak budou uživatlé z domény @META budou mapováni pomocí souborů /etc/passwd a /etc/group. To znamená že pro identitu xhejtman@META musí existovat záznam v /etc/passwd se jménem xhejtman. Běžné nástroje (ls -l) budou zobrazovat jména a skupiny z domény meta správně, bude-li pro jejich principála existovat jmnéno v daných souborech. Pro neexistující jméno se vybere mapování na uživatele nobody a skupinu nogroup.
Příklad:
grep xhejtman /etc/passwd xhejtman:x:1000:1000:Lukas Hejtmanek,,,:/home/xhejtman:/bin/bash ls -l /mnt/nfs/software total 0 drwxr-xr-x 4 nobody nogroup 51 2008-06-12 12:49 etics -rw-r--r-- 1 nobody nogroup 0 2008-06-06 14:26 hu drwxr-xr-x 6 xhejtman soft-nfs4 54 2008-06-12 14:45 libnfsidmap drwxr-xr-x 5 xhejtman soft-nfs4 40 2008-06-11 13:12 nsswitch
Tedy pro uzivatele xhejtman@META existuje jeho příslušný záznam v /etc/passwd a pro skupinu soft-nfs4@META zase záznam v /etc/group, tak mapování proběhne správně a správně se i zobrazuje. Pro uživatele vlastnící adresář etics záznam není, proto se zobrazuje jako nobody:nogroup.
Výše uvedené nastavení idmapd.conf bude zobrazovat správně pouze uživatele a skupiny uvedené v /etc/passwd a /etc/group a navíc jen, když skupina nebo uživatel bude z domény META.
Tzv. cross realm mapování uživatelů je možné dodatečným nastavením. Je potřeba nastavit mapování NFSv4 identit na číselnou reprezentaci a je potřeba nastavit mapování číselné reprezentace na jména.
Pro podporu mapování v cross realm prostředí je nutné získat mapovací soubory pro uživatele a skupiny:
http://meta.cesnet.cz/nfs4/passwd-nfs4 http://meta.cesnet.cz/nfs4/group-nfs4Tyto soubry je potřeba uložit do /etc/passwd-nfs4 a /etc/group-nfs4.
Dále je potřeba z NFS stáhnout a nainstalovat novou verzi knihovny libnfsidmap. Je umístěna v /storage/software/libnfsidmap, kde jsou jak samotné knihovny pro IA32 i X86_64 (lib32 a lib64), tak i balíčky pro Debian (pro i386 a AMD64).
Pro tento způsob mapování je zapotřebí napřed nastavit jednoduchý způsob popsaný výše, získat balíčky a pak lze zkoušet tento pokročilejší způsob.
Po nainstalování nové verze libnfsidmap a získání mapovacích souborů změníme nastavení idmapd.conf:
[Translation] Method = mnsswitch
V konfiguračním souboru již obdobné nastavení mohlo být, nové nastavení má text mnsswitch namísto nsswitch. Nastavení Domain = META ponecháme.
Zrestartujeme službu idmapd. Debian: /etc/init.d/nfs-common restart, opensuse /etc/init.d/idmapd restart nebo /etc/init.d/nfs restart
Tímto máme cross realmové mapování identit NFSv4 na číselnou reprezentaci pro POSIX rozhraní.
Jedná se o nastavení nsswitch mechanismu překladu jmen.
Z NFS /storage/software/nsswitch si stahneme knihovnu libnss-nfs4.so.2 a umístíme ji do adresáře /lib. Na NFS jsou opět umístěné verze pro debian i386 a X86_64. Protože se jedná o jediný soubor, nejsou vyrobeny balíčky.
Konfiguraci /etc/nsswitch.conf změníme následovně:
passwd: compat nfs4 group: compat nfs4
Tedy k řádkům s passwd a group přidáme nakonec slova nfs4 (jde o stejné jméno jako má knihovna libnss-jméno.so.2).
V tomto případě není nutné nic restartovat, nové mapování by mělo fungovat ihned.
Implicitně se vypisují jména i s doménou. Nechmeme-li nějakou doménu neustále vypisovat, lze exportovat proměnnou prostředí NFS4DOMAIN. Například: export NFS4DOMAIN=META, pak se ve výpisu jmen budou zobrazovat jména z domény META bez této domény.
Připojení svazku je nutné provádět s root oprávněními. Ujistěte se, že máte správný /etc/krb5.keytab nebo vytvořený uživatelský lístek pod rootem, ujistěte se, že vám běží portmap a nfs-common (nfs-utils). Lze ověřit pomocí: ps ax | grep rpc.gssd, ps ax | grep portmap.
Připojení provedeme pomocí:
mount -t nfs4 smaug1.ics.muni.cz:/ /storage -o sec=krb5
Místo /storage je možno zadat jakýkoliv jiný lokální adresář, kam chceme NFS svazek připojit. Uvedeme-li místo sec=krb5 volbu sec=krb5i bude při přenosech kontrolována integrita dat, uvedeme-li sec=krb5p budou data přenášena šifrovaně.
Lístek v /etc/krb5.keytab je implicitně použit puze pro mountování svazku. Lze se domluvit tak, že lístek lze použít i pro přístup k úložišti - explicitní domluva je nutná. Tento lístek platí dokud ho správce kerberos serveru nezruší. Tedy případný přístup pomocí lístku je "navždy".
Uživatelský lístek (obvykle /tmp/krb5cc_cislo) lze použít pro mountování (pustíme-li rpc.gssd s volbou -n) i pro přístup. Tento lístek ma zpravidla omezenou platnost.
Potřebujete nainstalované balíčky net-nds/portmap a net-fs/nfs-utils. Zkontrolujte, že nfs-utils jsou kompilovány s kerberem.
Skripty pro start nfs v Gentoo jsou poněkud nešťastné, zejména míchají nastavení serveru a klienta. Nastavení nfs-utils je v souboru /etc/conf.d/nfs, ve kterém potřebujete měnit nejvýše volbu "OPTS_RPC_GSSD" na hodnotu " -- -n " v případě, že používáte vlastní klíč a nikoli keytab stroje.
Dále se přesvědčte, že máte natažené moduly nfs a rpcsec_gss_krb5 a zařiďte, ať se po bootu natahují (vaším oblíbeným způsobem). Skripty je neumí natáhnout samy.
Nakonfigurujte /etc/idmapd.conf, jak je popsáno výše, typicky stačí přepsat Domain na META ve vzorovém souboru, a vraťte se opět na toto místo návodu.
Potřebujete spustit služby rpc.gssd a rpc.idmapd, například /etc/init.d/rpc.gssd start, a zařídit, aby se spouštěly po startu (rc-add default rpc.gssd a podobně pro rpc.idmapd).
Do /etc/fstab přidejte smaug1.ics.muni.cz:/ /storage nfs4 sec=krb5
a spusťte službu /etc/init.d/nfsmount. Svazek by se měl připojit.