Инструменты пользователя

Инструменты сайта


service:nfs

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
service:nfs [29.03.2024 12:04] – создано viacheslavservice:nfs [30.07.2024 19:21] (текущий) – внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +====== Общий каталог NFS ======
 +NFS - network file system (сетевая файловая система).
  
 +Концепция - создаётся каталог на линукс-сервере и спецпользователь с одноимённой группой без права локального входа, от имени которого ведётся работа с этим каталогом, в эту группу можно включать других пользователей. 
 +
 +''/etc/hosts.allow'' и ''/etc/hosts.deny'' - списки хостов, которым разрешено или запрещено подключаться к серверу.
 +
 +''/etc/exports'' — конфигурационный файл NFS. Формат записей:
 +<code>
 +# <папка на NFS сервере> <ip или подсеть клиента>(<права на файлы>,<sync - сервер не отвечает на запросы, пока файл не будет записан на диск>)
 +/srv/data 192.168.1.145(rw) 192.168.10.0/255.255.255.0(ro)
 +</code>
 +:!: Опции нужно писать без пробелов с адресами клиентов - ''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
 +
 +===== На сервере =====
 +<code bash>
 +# Установить утилиты 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
 +</code>
 +
 +Пример
 +<code bash>
 +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
 +</code>
 +
 +===== Linux-клиент =====
 +<code bash>
 +# Установка утилит 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
 +</code>
 +С /etc/fstab есть нюансы, такая конфигурация не переносит гибернацию, см. https://help.ubuntu.ru/wiki/nfs
 +
 +https://www.tecmint.com/how-to-setup-nfs-server-in-linux/
 +
 +==== AutoFS ====
 +Автомонтирование сетевых ФС по требованию.
 +<WRAP round important 80%>
 +В отличие от ручного монтирования или через ''/etc/fstab'' конечные каталоги на клиенте создаваться не должны, AutoFS возьмёт это на себя.\\
 +Т. е., для монтирования ''192.168.1.101:/exports/backup'' на клиенте нужно не ''/mnt/nfs/backup'', а только ''/mnt/nfs'' как корневой каталог для Autofs.
 +</WRAP>
 +
 +<code bash>
 +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
 +</code>
 +
 +===== Windows-клиент =====
 +Поставить из доп. компонентов "службы для NFS", затем внести в реестр значения соответствия анонимного пользователя тем ID, которые заведены для доступа к общему каталогу в линуксе. Если реестр не править, то доступ к папке будет, но только на чтение.
 +<code powershell>
 +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
 +</code>
 +Дальше можно подключать каталог как сетевое расположение или сетевой диск:\\
 +''\\<remote_pc_address>\var\nfs-share''
 +
 +https://blog.it-kb.ru/2018/10/16/using-the-nfs-client-in-windows-10-professional-edition/

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki