Якщо ви маєте певний досвід роботи з Linux або тільки починаєте знайомитися з серверним адмініструванням, то одним із поширених методів доступу до файлів є Samba. Багато хто обирає саме цей спосіб через те, що NFS часто здається надто складною в налаштуванні. У порівнянні з Samba або навіть FTP, NFS вимагає більшої кількості кроків і деталей. Існує поширена тенденція серед користувачів Linux уникати NFS, що є прикро, оскільки вона пропонує багато чудових можливостей і варіантів використання. Саме тому ми вирішили спростити процес налаштування NFS-сервера. У цій статті ми розглянемо, як можна організувати спільний доступ до файлів через NFS в Linux, та докладно пояснимо, як запустити відповідний сервер.
Встановлення
Зазвичай, у більшості дистрибутивів Linux інструменти NFS є ідентичними, хоча й з деякими відмінностями. Щоб почати роботу, відкрийте термінал і встановіть необхідні пакети у вашу систему. Ці пакети забезпечать базову технологію, необхідну для запуску сервера, створять файли конфігурації за замовчуванням і, можливо, виконають деякі інші налаштування.
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
Інші дистрибутиви Linux
NFS, як клієнт, так і сервер, – це не нова технологія. Тому ви з легкістю зможете налаштувати її роботу практично в будь-якому дистрибутиві Linux. Якщо вашої операційної системи немає в списку, спробуйте пошукати “nfs utils” в менеджері пакетів або зверніться до документації вашого дистрибутива.
Служби Systemd
Процес налаштування NFS-сервера може відрізнятися залежно від використовуваного дистрибутива Linux. Наприклад, при встановленні пакету NFS в Ubuntu або Debian, служби systemd автоматично встановлюються і налаштовуються. Проте, у випадках таких як Arch Linux, SUSE чи Fedora, вам доведеться зробити це вручну. Ось як ввімкнути ці служби.
Якщо ви використовуєте Arch Linux, SUSE, Fedora або будь-який дистрибутив Linux, який не налаштовує служби systemd для NFS автоматично, відкрийте термінал і введіть ці команди:
sudo systemctl enable rpcbind
sudo systemctl enable nfs-server
sudo service rpcbind start
sudo service nfs-server start
Конфігурація
Після встановлення пакетів NFS сервер вважається “налаштованим”, але це не означає, що користувачі вже мають до нього доступ. Для цього потрібно налаштувати експорт файлів, вказати їх місцезнаходження тощо. Щоб почати, отримайте права суперкористувача в терміналі за допомогою команди: sudo -s
Файл експорту може обробляти будь-який тип каталогу. Теоретично, користувачі можуть напряму вказати шлях до папки, яку хочуть зробити доступною, прямо у файловій системі. Однак, це створює значний ризик для безпеки. Набагато безпечніше взяти вміст одного каталогу і прив’язати його до іншого. Таким чином ви гарантуєте, що дозволи для папок і каталогів у папці /srv/ не потрібно змінювати, щоб забезпечити безпеку.
Наприклад, щоб налаштувати спільний доступ NFS для папки “Зображення” користувача, виконайте наступні дії:
mkdir -p /srv/nfs/pictures /home/username/Pictures/
mount --bind /home/username/Pictures/ /srv/nfs/pictures/
Використовуйте наведений вище приклад для створення стількох прив’язок, скільки вам потрібно. Важливо пам’ятати, що не обов’язково монтувати каталоги з домашніх папок. Використовуйте цей приклад, та проявіть креативність.
Після завершення, виконайте ці команди, щоб забезпечити постійність прив’язок:
echo '#NFS Pictures Bind Mount' >> /etc/fstab
echo '/home/username/Pictures/ /srv/nfs/pictures/ none bind 0 0' >> /etc/fstab
Примітка: вам потрібно буде змінити команди echo, щоб вони відповідали вашим персональним прив’язкам.
Після налаштування прив’язок, настав час сконфігурувати файл експорту. Цей файл дуже важливий, оскільки саме тут ви вказуєте кожен ресурс, доступний через NFS.
nano /etc/exports
У файлі експорту додайте наступний рядок:
/srv/nfs/pictures/ 192.168.0.0/255.255.255.0(rw,sync,no_subtree_check)
Ви можете написати стільки рядків, скільки потрібно. Майте на увазі, що кожен спільний ресурс потребує власної прив’язки, запису у fstab і запису в /etc/exports.
Примітка: збережіть файл експорту за допомогою CTRL + O.
Оновлення змін
NFS-сервер запущено, файли знаходяться у потрібному місці, і все готово до використання. Залишилося тільки оновити зміни, внесені до файлу експорту. Це важливий крок, оскільки NFS-сервер не оновлює зміни, внесені під час його роботи. Щоб оновити зміни, використайте команду: exportfs -rav
При необхідності, перезапустіть процес сервера в systemd за допомогою команди systemctl restart:
sudo systemctl restart nfs-server.
Висновок
Мережева файлова система – це дуже корисний інструмент. З її допомогою користувачі можуть легко працювати з віддаленими файлами і каталогами, начебто вони розташовані на локальному жорсткому диску. Це особливо зручно, оскільки альтернативні інструменти мережевої файлової системи не завжди забезпечують таку ж гнучкість і свободу дій.
Незважаючи на всі переваги, більшість користувачів все ж таки віддають перевагу Samba. Це зрозуміло, оскільки NFS може здатися складнішою і більш виснажливою у налаштуванні, порівняно з Samba. Однак, якщо ви освоїте процес налаштування, то NFS стане дуже корисним інструментом.