NFS je obvykle používán ke sdílení souborů mezi různými počítači na síti. Skvělá věc na NFS je, že je navržen tak, aby si jeden stroj mohl připojit sdílené soubory z jiného stroje transparentně a přistupovat k nim stejně jako ke svým lokálním souborům.
Několik věcí se musí udělat, aby to fungovalo. První je, že na serverovém stroji musí být spuštěny odpovídající služby: Jsou to portmap(8), nfsd(8) a mountd(8). Druhá věc je, že server musí výslovně "exportovat" souborový strom pro konkrétního klienta. To se dělá prostřednictvím souboru exports(5) v adresáři /etc.
První část problému vyřešíme nainstalováním balíčku tcpip1.tgz (ze skupiny N) a necháme rc.inet2 dělat svoje věci. /etc/exports je o něco zábavnější.
Předpokládejme, že mám adresář s obrázky na počítači battlecat.tdn, který chci zpřístupnit pro počítač ninja.tdn. Na počítači battlecat budu potřebovat přidat do /etc/exports řádek:
/var/media/images ninja.tdn(ro) |
Pak na počítači ninja mohu jednoduše zadat
# mount -t nfs battlecat.tdn:/var/media/images /mnt |
a adresář s obrázky se připojí pod adresář /mnt. Naneštěstí jsem si zakázal zápis do sdíleného adresáře-- ono "(ro)" v souboru /etc/exports na počítači battlecat je volba znamenající "read-only". Jakékoliv podobné volby musí být uvedeny v závorkách za jménem klientského počítače. Je-li jich více, oddělují se čárkami. Na příklad:
/var/media/images ninja.tdn(rw,no_root_squash) |
To "rw" je samozřejmě "read-write"-- subject to user and group id mapping (viz manuálová stránka exports(5), kde se to vysvětluje), uživatelé na počítači ninja mají dovoleno zapisovat do sdíleného adresáře. Je to celkem pohodlné, co?