====== Общий каталог NFS ======
NFS - network file system (сетевая файловая система).
Концепция - создаётся каталог на линукс-сервере и спецпользователь с одноимённой группой без права локального входа, от имени которого ведётся работа с этим каталогом, в эту группу можно включать других пользователей.
''/etc/hosts.allow'' и ''/etc/hosts.deny'' - списки хостов, которым разрешено или запрещено подключаться к серверу.
''/etc/exports'' — конфигурационный файл NFS. Формат записей:
# <папка на NFS сервере> (<права на файлы>,)
/srv/data 192.168.1.145(rw) 192.168.10.0/255.255.255.0(ro)
:!: Опции нужно писать без пробелов с адресами клиентов - ''192.168.1.0/24(rw,sync)''. Если отделить пробелом, тогда получится так - для адреса/диапазона будут права по умолчанию, а //для всех остальных// - права заданные.
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/deployment_guide/s1-nfs-server-config-exports
===== На сервере =====
# Установить утилиты nfs
apt install nfs-common
# Создать пользователя nfs без интерактивного входа
useradd -s /usr/sbin/nologin nfs
# Создать папку и раздать права
mkdir /var/nfs-share
chown -R nfs:nfs /var/nfs-share/
chmod -R 770 /var/nfs-share/
# Включить юзера в группу nfs
usermod -G nfs user
# Как посмотреть ID и группы пользователя
id user
# Проверить права на папку
ls -ld /var/nfs-share/
# Установить поддержку NFS
apt-get install nfs-kernel-server nfs-common
# внести каталог в конфиг, прописать ID пользователя и группы, которые будут работать с каталогом.
# Вместо IP и маски можно поставить *, если не нужно ограничений на подключения
nano /etc/exports
/var/nfs-share 192.168.1.0/24(rw,sync,no_subtree_check,anonuid=1001,anongid=1001)
# Применить настройки
exportfs -a
# или
systemctl restart nfs-kernel-server
Пример
mkdir -p /exports/documents /exports/backup
apt install -y nfs-server # or nfs-kernel-server
# Внести в /etc/exports (no_subtree_check - настройка по умолчанию, без неё выдаётся предупреждение при применении настроек)
/exports/documents 192.168.1.0/24(rw,no_subtree_check)
/exports/backup 192.168.1.0/24(rw,no_subtree_check)
# Применить настройки
exportfs -a
===== Linux-клиент =====
# Установка утилит nfs
apt install nfs-common
# Проверить доступность шар на сервере (нужен именно IP, имя не работает)
showmount -e 192.168.1.101
# Создать каталоги для монтирования NFS-шар
sudo mkdir -p /mnt/nfs/documents /mnt/nfs/backup
# Разовое монтирование (работает до перезагрузки)
sudo mount -t nfs4 192.168.1.101:/exports/backup /mnt/nfs/backup
# Отмонтировать
sudo umount /mnt/nfs/backup
# Чтобы действовало постоянно - отредактировать /etc/fstab
nano /etc/fstab
192.168.1.101:/exports/backup /mnt/nfs/backup nfs4 auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
С /etc/fstab есть нюансы, такая конфигурация не переносит гибернацию, см. https://help.ubuntu.ru/wiki/nfs
https://www.tecmint.com/how-to-setup-nfs-server-in-linux/
==== AutoFS ====
Автомонтирование сетевых ФС по требованию.
В отличие от ручного монтирования или через ''/etc/fstab'' конечные каталоги на клиенте создаваться не должны, AutoFS возьмёт это на себя.\\
Т. е., для монтирования ''192.168.1.101:/exports/backup'' на клиенте нужно не ''/mnt/nfs/backup'', а только ''/mnt/nfs'' как корневой каталог для Autofs.
apt install -y autofs
# Основной файл конфигурации - /etc/auto.master
# --ghost - создавать каталоги, --timeout - через сколько сек. отмонтировать при отсутствии активности
/mnt/nfs /etc/auto.nfs --ghost --timeout=60
# /etc/auto.nfs
documents -fstype=nfs4,rw 192.168.1.101:/exports/documents
backup -fstype=nfs4,rw 192.168.1.101:/exports/backup
===== Windows-клиент =====
Поставить из доп. компонентов "службы для NFS", затем внести в реестр значения соответствия анонимного пользователя тем ID, которые заведены для доступа к общему каталогу в линуксе. Если реестр не править, то доступ к папке будет, но только на чтение.
reg add HKLM\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default /v AnonymousUid /t REG_DWORD /d 1001 /f
reg add HKLM\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default /v AnonymousGid /t REG_DWORD /d 1001 /f
# перезапустить сервис для применения настроек
Restart-service nfsclnt
Дальше можно подключать каталог как сетевое расположение или сетевой диск:\\
''\\\var\nfs-share''
https://blog.it-kb.ru/2018/10/16/using-the-nfs-client-in-windows-10-professional-edition/