Это старая версия документа!
Содержание
Общий каталог 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
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/
Linux-клиент
mount -t nfs {remote_pc_address}:/remote/dir /some/local/dir # чтобы действовало постоянно - отредактировать /etc/fstab nano /etc/fstab 192.168.1.5:/opt/data/nfs /mnt/nfs nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0 # Вывод доступных nfs-ресурсов на сервере showmount -e 192.168.1.5
С /etc/fstab есть нюансы, такая конфигурация не переносит гибернацию, см. https://help.ubuntu.ru/wiki/nfs