NFS neboli Network File System je protokol distribuovaného systému souborů původně vyvinutý pouze společností Sun Microsystems. Prostřednictvím NFS můžete systému umožnit sdílení adresářů a souborů s ostatními prostřednictvím sítě. Sdílením souborů NFS mohou uživatelé a dokonce i programy přistupovat k informacím na vzdálených systémech téměř jako na místním počítači.
NFS funguje v prostředí klient-server, kde je server zodpovědný za správu ověřování, autorizace a administrace klientů a také za všechna data sdílená v rámci konkrétního systému souborů. Po autorizaci může libovolný počet klientů přistupovat ke sdíleným datům, jako by byla v jejich interním úložišti. Nastavení serveru NFS na vašem systému Ubuntu je velmi snadné. Stačí provést několik nezbytných instalací a konfigurací na serveru i na klientských počítačích a můžete začít.
V tomto článku krok za krokem vysvětlíme, jak nastavit NFS server a klienta, který vám umožní sdílet soubory z jednoho systému Ubuntu do druhého.
Spustili jsme příkazy a postupy popsané v tomto článku na systému Ubuntu 18.04 LTS a nedávno je testovali s novým Ubuntu 20.04. Protože k provádění všech operací používáme příkazový řádek Ubuntu, terminál, můžete jej otevřít buď pomocí systémové pomlčky nebo kombinace kláves Ctrl+Alt+T.
Nastavení hostitelského serveru
Aby bylo možné nastavit hostitelský systém pro sdílení adresářů, budeme na něj muset nainstalovat server jádra NFS a poté vytvořit a exportovat adresáře, ke kterým chceme, aby klientské systémy měly přístup. Pro bezproblémové nastavení hostitelské strany postupujte podle následujících kroků:
Krok 1:Nainstalujte server jádra NFS
Před instalací serveru jádra NFS musíme aktualizovat index úložiště našeho systému na index z internetu pomocí následujícího příkazu apt jako sudo:
$ sudo apt-get update
Výše uvedený příkaz nám umožňuje nainstalovat nejnovější dostupnou verzi softwaru prostřednictvím repozitářů Ubuntu.
Nyní spusťte následující příkaz, abyste na svůj systém nainstalovali server jádra NFS:
$ sudo apt install nfs-kernel-server
Systém vás vyzve volbou Y/n k potvrzení, zda chcete v instalaci pokračovat. Zadejte Y a poté pokračujte stisknutím klávesy Enter. Poté bude software úspěšně nainstalován do vašeho systému.
Krok 2:Vytvořte adresář pro export
Adresář, který chceme sdílet s klientským systémem, se nazývá exportní adresář. Můžete jej pojmenovat podle svého výběru; zde vytváříme exportní adresář s názvem „sharedfolder“ v adresáři mnt(mount) našeho systému.
Použijte následující příkaz zadáním názvu složky pro připojení podle potřeby prostřednictvím následujícího příkazu jako root:
$ sudo mkdir -p /mnt/sharedfolder
Protože chceme, aby všichni klienti měli přístup k adresáři, odstraníme omezující oprávnění složky exportu pomocí následujících příkazů:
$ sudo chown nobody:nogroup /mnt/sharedfolder
$ sudo chmod 777 /mnt/sharedfolder
Nyní budou mít všichni uživatelé ze všech skupin na klientském systému přístup k naší „sdílené složce“.
V exportní složce můžete vytvořit tolik podsložek, kolik chcete, aby k nim měl klient přístup.
Krok 3:Přidělte přístup k serveru klientům prostřednictvím exportního souboru NFS
Po vytvoření exportní složky budeme muset klientům poskytnout oprávnění pro přístup k počítači hostitelského serveru. Toto oprávnění je definováno prostřednictvím souboru exportů umístěného ve složce /etc vašeho systému. K otevření tohoto souboru pomocí editoru Nano použijte prosím následující příkaz:
$ sudo nano /etc/exports
Úpravy tohoto souboru vyžadují přístup root; proto budete muset s příkazem použít sudo. Soubor můžete také otevřít v libovolném svém oblíbeném textovém editoru.
Jakmile soubor otevřete, můžete povolit přístup k:
- Jeden klient přidáním následujícího řádku do souboru:
/mnt/sharedfolder clientIP(rw,sync,no_subtree_check)
- Více klientů přidáním následujících řádků do souboru:
/mnt/sharedfolder client1IP(rw,sync,no_subtree_check)
/mnt/sharedfolder client2IP(rw,sync,no_subtree_check)
- Více klientů zadáním celé podsítě, do které klienti patří:
/mnt/sharedfolder subnetIP/24(rw,sync,no_subtree_check)
V tomto příkladu specifikujeme celou podsíť všech klientů, kterým chceme udělit přístup k naší exportní složce (sharedfolder):
Přidejte požadovaný řádek (řádky) do souboru exportu a poté jej uložte stisknutím kláves Ctrl+X, zadáním Y a poté stisknutím klávesy Enter.
Oprávnění „rw,sync,no_subtree_check“ definovaná v tomto souboru znamenají, že klient (klienti) může provádět:
- rw :operace čtení a zápisu
- synchronizovat :zapište jakoukoli změnu na disk před jejím použitím
- no_subtree_check :zabránit kontrole podstromu
Krok 4:Export sdíleného adresáře
Po provedení všech výše uvedených konfigurací v hostitelském systému je nyní čas exportovat sdílený adresář pomocí následujícího příkazu jako sudo:
$ sudo exportfs -a
Nakonec, aby se všechny konfigurace projevily, restartujte server jádra NFS následovně:
$sudo systemctl restart nfs-kernel-server
Krok 5:Otevřete bránu firewall pro klienta (klienty)
Důležitým krokem je ověřit, zda je pro klienty otevřena brána firewall serveru, aby mohli přistupovat ke sdílenému obsahu. Následující příkaz nakonfiguruje bránu firewall tak, aby umožňovala přístup klientům prostřednictvím NFS:
$ sudo ufw allow from [clientIP or clientSubnetIP] to any port nfs
V našem příkladu poskytujeme přístup k celé podsíti klientských počítačů pomocí následujícího příkazu:
$ sudo ufw allow from 192.168.100/24 to any port nfs
Nyní, když zkontrolujete stav vaší brány firewall Ubuntu pomocí následujícího příkazu, budete moci zobrazit stav akce jako „Povolit“ pro IP klienta.
$ sudo ufw status
Váš hostitelský server je nyní připraven exportovat sdílenou složku do zadaného klienta (klientů) prostřednictvím serveru jádra NFS.
Konfigurace klientského počítače
Nyní je čas provést několik jednoduchých konfigurací klientského počítače, aby bylo možné sdílenou složku z hostitele připojit ke klientovi a poté k ní hladce přistupovat.
Krok 1:Nainstalujte NFS Common
Před instalací aplikace NFS Common musíme aktualizovat index úložiště našeho systému na index internetu pomocí následujícího příkazu apt jako sudo:
$ sudo apt-get update
Výše uvedený příkaz nám umožňuje nainstalovat nejnovější dostupnou verzi softwaru prostřednictvím repozitářů Ubuntu.
Nyní spusťte následující příkaz, abyste na svůj systém nainstalovali klienta NFS Common:
$ sudo apt-get install nfs-common
Systém vás vyzve volbou Y/n k potvrzení, zda chcete v instalaci pokračovat. Zadejte Y a poté pokračujte stisknutím klávesy Enter. Poté bude software úspěšně nainstalován do vašeho systému.
Krok 2:Vytvořte bod připojení pro sdílenou složku hostitele NFS
Systém vašeho klienta potřebuje adresář, kde lze přistupovat k veškerému obsahu sdílenému hostitelským serverem ve složce exportu. Tuto složku můžete vytvořit kdekoli ve vašem systému. Vytváříme složku mount v adresáři mnt na počítači našeho klienta:
$ sudo mkdir -p /mnt/sharedfolder_client
Krok 3:Připojte sdílený adresář na klienta
Složka, kterou jste vytvořili ve výše uvedeném kroku, je jako jakákoli jiná složka ve vašem systému, pokud do této nově vytvořené složky nepřipojíte sdílený adresář z vašeho hostitele.
Chcete-li připojit sdílenou složku z hostitele do složky připojení na klientovi, použijte následující příkaz:
$ sudo mount serverIP:/exportFolder_server /mnt/mountfolder_client
V našem příkladu spouštíme následující příkaz k exportu naší „sharedfolder“ ze serveru do připojovací složky „sharedfolder_client“ na klientském počítači:
$ sudo mount 192.168.100.5:/mnt/sharedfolder /mnt/sharedfolder_client
Krok 4:Otestujte připojení
Vytvořte nebo uložte soubor do exportní složky hostitelského serveru NFS. Nyní otevřete složku mount na klientském počítači; měli byste mít možnost zobrazit stejný soubor sdílený a přístupný v této složce.
Závěr
Nastavení prostředí klient-server NFS na systémech Ubuntu je snadný úkol. V tomto článku jste se naučili, jak nainstalovat požadované balíčky NFS na server i klienty. Také jste se naučili, jak nakonfigurovat server NFS a klientské počítače tak, aby bylo možné složky sdílet a následně k nim přistupovat hladce bez jakýchkoliv problémů s firewallem nebo oprávněními. Nyní můžete snadno sdílet obsah z jednoho systému Ubuntu do druhého pomocí protokolu NFS.