Содержание
Общий каталог NFS
NFS - network file system (сетевая файловая система).
Концепция - создаётся каталог на линукс-сервере и спецпользователь с одноимённой группой без права локального входа, от имени которого ведётся работа с этим каталогом, в эту группу можно включать других пользователей.
/etc/hosts.allow
и /etc/hosts.deny
- списки хостов, которым разрешено или запрещено подключаться к серверу.
/etc/exports
— конфигурационный файл NFS. Формат записей:
# <папка на NFS сервере> <ip или подсеть клиента>(<права на файлы>,<sync - сервер не отвечает на запросы, пока файл не будет записан на диск>) /srv/data 192.168.1.145(rw) 192.168.10.0/255.255.255.0(ro)
Опции нужно писать без пробелов с адресами клиентов - 192.168.1.0/24(rw,sync)
. Если отделить пробелом, тогда получится так - для адреса/диапазона будут права по умолчанию, а для всех остальных - права заданные.
На сервере
# Установить утилиты 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
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
Дальше можно подключать каталог как сетевое расположение или сетевой диск:
\\<remote_pc_address>\var\nfs-share
https://blog.it-kb.ru/2018/10/16/using-the-nfs-client-in-windows-10-professional-edition/