Jak hostovat sdílené položky NFS v systému Linux

Pokud jste mírně zručný uživatel Linuxu nebo začátečník se serverem, hlavním způsobem, jak přistupovat k souborům, je Samba. Mnozí to dělají kvůli tomu, jak obtížné se NFS zdá být. Je tu tolik kroků a maličkostí, které musíte udělat správně ve srovnání s něčím, jako je Samba nebo dokonce FTP. Skutečnost, že mnoho uživatelů Linuxu přechází přes NFS, je opravdu škoda, protože má spoustu skvělých funkcí a využití. Proto jsme se rozhodli odstranit potíže s nastavením serveru NFS. Rozebereme, jak můžete hostovat sdílené složky NFS na Linuxu, a podrobně vysvětlíme, jak můžete uvést server do provozu.

Instalace

Obecně platí, že každá distribuce Linuxu má stejné nástroje NFS s několika rozdíly tu a tam. Aby vše fungovalo, otevřete terminál a nainstalujte do svého systému následující balíčky. Tyto balíčky nainstalují výchozí technologii potřebnou ke spuštění serveru, vygenerují výchozí konfigurační soubory a někdy dokonce nakonfigurují další věci.

Ubuntu

sudo apt install nfs-kernel-server

Fedora

sudo dnf install nfs-utils system-config-nfs

Arch Linux

sudo pacman -S nfs-utils

Debian

sudo apt-get install nfs-kernel-server

OpenSUSE

sudo zypper install nfs-kernel-server

Ostatní Linuxy

Systém souborů NFS, klient a server nejsou novou technologií. Výsledkem je, že to snadno zprovozníte v podstatě na jakékoli distribuci Linuxu. Pokud váš operační systém nebyl pokryt, zvažte hledání „nfs utils“ ve správci balíčků nebo se podívejte na Wiki vašeho operačního systému.

Systemd služby

Nastavení serveru NFS se může lišit v závislosti na distribuci Linuxu, kterou používáte. Pokud například nainstalujete balíček Ubuntu nebo Debian NFS, služby systemd se automaticky nastaví a nakonfigurují za vás. Nicméně na něčem, jako je Arch Linux, SUSE nebo Fedora atd., to budete muset udělat ručně. Zde je návod, jak tyto služby povolit.

Pokud používáte Arch Linux, Open SUSE nebo Fedora (nebo jakoukoli distribuci Linuxu, která automaticky nenastavuje služby systemd pro NFS), otevřete terminál a zadejte tyto příkazy.

sudo systemctl enable rpcbind
sudo systemctl enable nfs-server 

sudo service rpcbind start 

sudo service nfs-server start

Konfigurace

Instalací balíčků NFS je server „nastavený“, ale to neznamená, že k němu uživatelé ještě mají přístup. K tomu musí uživatelé nastavit exporty, umístění souborů atd. Chcete-li začít, získejte root shell v terminálu. Udělejte to pomocí: sudo -s

Exportní soubor může pracovat s libovolným typem adresáře. Ve skutečnosti mohou uživatelé snadno zapsat přímé umístění do složky, kterou chtějí sdílet přímo v systému souborů. Problém je v tom, že je to obrovské bezpečnostní riziko. Je mnohem bezpečnější vzít obsah jednoho adresáře a svázat jej s jiným. To zajišťuje, že oprávnění pro složky a adresáře ve složce /srv/ není třeba upravovat, aby bylo vše bezpečné.

Chcete-li například nastavit sdílení NFS složky Obrázky uživatele, postupujte takto:

mkdir -p /srv/nfs/pictures /home/username/Pictures/

mount --bind /home/username/Pictures/ /srv/nfs/pictures/

Pomocí výše uvedeného příkladu vytvořte tolik připojení, kolik chcete. Mějte na paměti, že není nutné připojovat adresáře z domovských složek. Místo toho použijte tento příklad a buďte kreativní.

Až bude vše vyřešeno, spusťte tyto příkazy, aby se držáky přilepily:

echo '#NFS Pictures Bind Mount' >> /etc/fstab
echo '/home/username/Pictures/ /srv/nfs/pictures/ none bind 0 0' >> /etc/fstab

Poznámka: budete muset změnit příkazy echo tak, aby vyhovovaly vašim vlastním mountům.

Po nastavení připojení je čas nakonfigurovat konfigurační soubor exportů. Soubor exportů je velmi důležitý, protože zde budete muset určit každou sdílenou složku, kterou má NFS používat.

nano /etc/exports

Uvnitř exportovaného souboru přejděte úplně na konec a napište následující:

/srv/nfs/pictures/ 192.168.0.0/255.255.255.0(rw,sync,no_subtree_check)

Klidně si napište tolik řádků, kolik chcete. Mějte na paměti, že každá sdílená položka potřebuje své vlastní připojení, položku fstab a položku /etc/exports.

Poznámka: uložte soubor exportu pomocí CTRL + O

Aktualizace změn

NFS server je v provozu, soubory jsou na správném místě a vše je připraveno k použití. Zbývá pouze aktualizovat změny provedené v souboru exportů. Toto je důležitý krok, protože NFS server nebude aktualizovat změny provedené, když je spuštěn. Proveďte změny pomocí: exportfs -rav

V případě potřeby restartujte proces serveru v rámci samotného systemd pomocí příkazu systemctl restart.

sudo systemctl restart nfs-server.

Závěr

Síťový souborový systém je užitečný nástroj. S ním mohou uživatelé snadno vzít vzdálené soubory a adresáře a pracovat s nimi lokálně stejně jako s fyzickým pevným diskem. To je skvělé, protože konkurenční nástroje síťového souborového systému nedávají uživatelům stejnou všudypřítomnost a svobodu.

Navzdory své užitečnosti většina lidí raději používá Sambu. Je to pochopitelné, protože ve srovnání se Sambou může být NFS trochu otravné a zdlouhavé nastavování. Pokud se však vypořádáte s náročným procesem nastavení, vyplatí se to mnohem víc.