Записная книжка
Установка NFS
1. Установим NFS на сервер:
# sudo apt install nfs-kernel-server
2. Добавим NFS в автозагрузку:
# sudo systemctl enable nfs-server
3. Создадим точку монтирования для файлов nfs:
# sudo mkdir /var/nfs
# sudo chown -R tvikks:tvikks /var/nfs
4. Уточним uid и gid для пользователя tvikks с помощью команды:
# cat /etc/passwd | grep tvikks
5. Все общие папки и другие настройки nfs находятся в файле /etc/exports. Добавим такую запись в этот файл:
# /var/nfs 192.168.88.0/24(rw,sync,all_squash, root_squash, anonuid=????,anongid=????)
в команде указаны следующие параметры:
- /var/nfs - путь к экспортируемым данным;
- 192.168.88.0/24 - адрес сети, компьютерам которой разрешается доступ к файлам nfs;
- rw - разрешить чтение и запись в этой папке;
- sync - сообщать клиенту об успешной записи, только после фактической записи на диск,
несколько замедляет работу, но предотвращает потерю данных;
- all_squash - превращать все запросы в анонимные (понижать права всех пользователей до nobody:nogroup);
- root_squash - подменять запросы от root на анонимные, используется по умолчанию;
- anonuid и anongid - указывает uid и gid для анонимного пользователя (получили на шаге 4).
6. Обновим таблицу экспорта NFS:
# sudo exportfs -a
7. Откроем порты брандмауэра 111 и 2049:
# sudo ufw allow 111
# sudo ufw allow 2049
8. Установить пакет nfs для клиентского компьютера командой:
#sudo apt install nfs-common
9. Создать каталог для монтирования файлов из внешнего диска клиента:
#sudo mkdir /home/srv_fils
10. Предоставим права на чтение и запись для всех пользователей на компьютере:
#sudo chmod -R 777 /home/srv_fils
11. Создадим юнит для монтирования внешнего диска (название файла юнита должно
соответствовать пути расположения монтирования в дереве, но вместо знака
"/" в названии нужно указывать знак "-", для исключения ошибок в названии
можно использовать команду systemd-escape -p "/home/srv_fils", в результате
получим верное имя модуля "home-srv_fils"):
#sudo nano /etc/systemd/system/home-srv_fils.mount
12. Заполним конфигурацию созданного модуля, при этом в опции What указываем внешний
сетевой ресурс "192.168.88.150:/var/nfs", а в опции Where - точку монтирования "/home/srv_fils":
=== Содержание файла юнита ===
[Unit]
Description=NFS
[Mount]
What=192.168.88.150:/var/nfs
Where=/home/srv_fils
Type=nfs4
Options=_netdev,auto
TimeoutSec=10
[Install]
WantedBy=multi-user.target
13. Затем создадим еще один юнит, для автомонтирования ресурса по требованию, это наиболее
удобный вариант и рекомендуется для сетевых и съемных ресурсов:
#sudo nano /etc/systemd/system/home-srv_fils.automount
14. Заполним конфигурацию созданного модуля, при этом в опции What указываем только точку
монтирования "/home/srv_fils":
=== Содержание файла юнита ===
[Unit]
Description=Autonount NFS
[Automount]
Where=/home/srv_fils
TimeoutIdleSec=900
[Install]
WantedBy=multi-user.target
15. Теперь перечитаем список юнитов, добавим юнит автомонтирования в автозагрузку и сразу запустим
Перезагружать систему не надо, при работающем юните достаточно обратиться к указанной точке
монтирования, и сетевая файловая система будет подключена автоматически:
#sudo systemctl daemon-reload
#sudo systemctl enable --now home-srv_fils.automount
В.А. 11.02.2024