JMÉNO
exports − souborové systémy exportované pomocí NFS
SYTAXE
/etc/exports
POPIS
Soubor /etc/exports definuje přístupová práva pro souborové systémy, které mohou být exportovány NFS klientům. Je používán jak NFS mount démonem, (mountd(8)) tak i NFS server démonem (nfsd(8)).
Formát souboru je podobný formátu souboru exports na SunOS, přičemž definuje některá rozšíření. Každá řádka obsahuje bod připojení (mount point) a seznam počítačů či síťových skupin, které mají právo tento souborový systém v tomto bodě připojit. Ke každému jménu počítače je možno připojit seznam připojovacích parametrů v závorkách. Prázdné řádky jsou ignorovány a znak # uvozuje komentář až do konce řádku.
Základní přepínače
secure |
Tento přepínač vyžaduje, aby připojení vycházelo z portu s číslem menším než IPPORT_RESERVED (1024). Toto je standardní nastavení. Pro jeho změnu zadejte insecure. | ||
ro |
Povoluje přístup pouze pro čtení pro toto připojení. Standardně je povolen přístup i pro zápis. Ten je možno explicitně uvést pomocí přepínače rw. |
link_relative
Konvertuje absolutní symbolické odkazy (tj. ty, které začínají lomítkem) na relativní přidáním správného počtu ../ na začátek, abychom se posunuli z adresáře s odkazem do kořene serveru. Tento přepínač má význam pouze tehdy, není-li souborový systém připojen jako kořen.
link_absolute
Odkazům se ponechává jejich původní význam. Toto je standardní nastavení.
Mapování
uživatelských identifikací
nfsd zakládá kontrolu přístupu
k souborům na serveru na uid a gid, které je
součástí každého NFS RPC
požadavku. Logický požadavek, aby
uživatel přistupoval na soubory na serveru
stejně jako na lokální vyžaduje, aby
uid a gid byla na klientu i serveru totožná.
Toto však není vždy pravda a někdy
je dokonce vyžadováno, aby tomu tak nebylo.
Velmi často není vhodné, aby uživatel root na jednom počítači byl také rootem, když přistupuje na soubory na NFS serveru. Proto se uid 0 obvykle mapuje na jiné uid zvané anonymní nebo nobody . Tento mód je standardní (nazývá se root squashing) a lze jej vypnout pomocí no_root_squash.
Nfsd standardně získává anonymní uid a gid hledáním uživatele nobody v souboru /etc/passwd při startování démona. Jestliže jej nenalezne, použije -2 (65534) jako uid i gid. Tyto hodnoty mohou být změněny pomocí přepínačů anonuid a anongid.
Navíc nfsd umožňuje nastavit mapování dalších uid a gid na uživatele nobody. Mapování všech na nobody lze nastavit přepínačem all_squash.
Aby bylo možno dynamicky nastavit mapování lokálních a vzdálených uid a gid použijte nfsd přepínač map_daemon , který používá UGID RPC protokol. Aby vše fungovalo, je třeba spustit ugidd(8) mapovací démon na straně klienta.
Zde je
kompletní seznam mapovacích
přepínačů:
root_squash
Mapuje požadavky uid/gid 0 na anonymní uid/gid. Všimněte si, že se to netýká jiných stejně citlivých uživatelů, jako je např. bin.
no_root_squash
Vypíná root_squash. Obvykle je vhodný pro bezdiskové stanice.
squash_uids a squash_gids
Seznam uid/gid, které se mají také mapovat na anonymního uživatele. Správný seznam vypadá např. takto:
squash_uids=0-15,20,25-50
Obvykle je však tento seznam jednodušší:
squash_uids=0-100
all_squash
Mapuje všechny uživatele na anonymního. Lze jej s výhodou použít na NFS-export veřejných FTP stromů či jiných veřejně sdílených adresářů. Vypíná se pomocí no_all_squash, což je standardní nastavení.
map_daemon
Tento přepínač zapíná dynamické mapování uid a gid. Každý požadavek je přeložen do odpovídajícího serverového uid/gid a každá odpověď zase obráceně. Vyžaduje, aby byl démon rpc.ugidd(8) spuštěn na straně klienta. Standardně je nastaveno map_identity, které ponechává všechna uid beze změny. Přitom se však v každém případě použije nastavení přepínačů sqash, které mají přednost.
anonuid a anongid
Tyto přepínače explicitně nastavují anonymní uid a gid. Primární použití je pro PC/NFS klienty, kde se může každý požadavek jevit, jako byl přišel od jediného klienta. Jako příklad uveďme export pro /home/joe v příkladech dole, které mapuje každý požadavek na uid 150 (o kterém se předpokládá, že patří uživateli joe).
PŘÍKLAD
#
příklad souboru /etc/exports
/ master(rw) trusty(rw,no_root_squash)
/projects proj*.local.domain(rw)
/usr *.local.domain(ro) @trusted(rw)
/home/joe pc001(rw,all_squash,anonuid=150,anongid=100)
/pub (ro,insecure,all_squash)
První řádka exportuje celý souborový systém počítačům master a trusty. Navíc, veškerý squashing je vypnut pro klienta trusty. Druhý a třetí příklad ukazuje, jak použít zástupné znaky pro jména počítačů a jména síťových skupin (to je @trusted). Čtvrtá řádka ukazuje export pro klienta PC/NFS (viz výše). Poslední řádka exportuje veřejný FTP adresář libovolnému počítači, přičemž všechny požadavky jsou prováděny jako uživatel nobody. Přepínač insecure dovoluje připojit klienty, kteří nepoužívají porty rezervované pro NFS.
UPOZORNĚNÍ
Na rozdíl od jiných implementací NFS serveru tento nfsd démon dovoluje exportovat adresář i podadresáře témuž klientovi, např. /usr a /usr/X11R6. V tomto případě se použijí přepínače, které jsou nejblíže. Dejme tomu, že klient přistupuje na soubor v /usr/X11R6, pak se uplatní přepínače pro /usr/X11R6 . Toto platí v případě, že jsou tyto přepínače definovány maskou nebo pro síťovou skupinu.
SOUBORY
/etc/exports
Konfigurační soubor pro nfsd(8).
/etc/passwd
Soubor hesel.
DIAGNOSTIKA
Chyba v tomto souboru je hlášena pomocí syslogd(8) jako úroveň NOTICE až DAEMON kdykoli je nfsd(8) nebo mountd(8) spuštěn.