====== Сервис NFS ======
!!! Рекомендуется наличие PTR записей или записей в hosts !!!
===== Установка, настройка и запуск сервиса =====
* [[http://ru.wikipedia.org/wiki/Network_File_System|Network File System]]
==== Dеbian/Ubuntu ====
root@server:~# apt install nfs-kernel-server
root@server:~# cat /etc/exports
#/var/cache/apt/archives 192.168.0.0/16(ro,sync,no_subtree_check)
#/home 192.168.X.0/24(rw,sync,no_subtree_check)
#/var/www/html/sarg 192.168.X.1(rw,sync,no_subtree_check,no_root_squash)
#/var/www *(rw,sync,no_root_squash,subtree_check) #for example in minikube
#/var/www 192.168.0.0/16(rw,sync,no_subtree_check,no_root_squash) 172.16.0.0/12(rw,sync,no_subtree_check,no_root_squash) 10.0.0.0/8(rw,sync,no_subtree_check,no_root_squash)
root@server:~# service nfs-kernel-server restart
==== FreeBSD ===
[server:~] # cat /etc/exports
#/usr/ports -ro -network 192.168.X.0/24
#/var/cache/pkg -ro -network 192.168.X.0/24
#/usr/home -network 192.168.X.0/24
#/usr/local/www/apache24/data/sarg -maproot=root:wheel 192.168.X.1
[server:~] # cat /etc/rc.conf
...
rpcbind_enable="YES"
rpc_statd_enable="YES"
rpc_lockd_enable="YES"
mountd_enable="YES"
nfs_server_enable="YES"
[server:~] # /etc/rc.d/rpcbind start
Starting rpcbind.
[server:~] # service lockd start
Starting statd.
Starting lockd.
[server:~] # /etc/rc.d/mountd start
Starting mountd.
[server:~] # /etc/rc.d/nfsd start
Starting nfsd.
==== CentOS/SL ====
[root@server ~]# yum install nfs-utils
[root@server ~]# cat /etc/exports
/home 192.168.X.0/24(rw,no_acl,sync,no_subtree_check)
[root@server ~]# find /home -exec setfacl -b {} \;
[root@server ~]# find /home -type d -exec chmod 755 {} \;
==== Windows Server ====
==== Windows 2003 ====
[[http://www.techietips.net/networking/create-an-nfs-share-with-microsoft-services-for-uni-15.html]]
==== Windows 2008 ====
Start->Administrative Tools->Server Manager->Roles->Add Role->File Server->Service for Network File System
В свойствах папки (лобой, но удобнее C:\home) включить NFS Sharing, и настроить Permissions (ALL_MACHINES ReadWrite, AllowRootAccess)
==== Windows 2016 ====
* [[http://blog.bobbyallen.me/2018/01/18/windows-server-2016-as-an-nfs-server-for-linux-clients/|Windows Server 2016 as an NFS server for Linux clients]]
===== Перезапуск сервиса =====
(при изменении файла exports)
==== FreeBSD ====
[server:~] # service mountd reload
==== Ubuntu/Debian ====
root@server:~# service nfs-kernel-server force-reload
===== Установка nfs клиента =====
==== Debian/Ubuntu ====
root@client1:~# apt install nfs-common
==== FreeBSD ====
root@client1:~# cat /etc/rc.conf
...
rpcbind_enable="YES"
rpc_lockd_enable="YES"
rpc_statd_enable="YES"
...
root@client1:~# service lockd start
===== Использование сервиса =====
==== Просмотр ресурсов ====
# showmount -e server
==== Монтирование домашних каталогов ====
# mkdir /home
# mount server:/home /home
# umount /home
# cat /etc/fstab
...
server:/home /home nfs rw,soft 0 0
# mount /home
==== Установка ПО ====
=== Debian/Ubuntu ===
nfsclient# mount nfsserver:/var/cache/apt/archives /mnt
nfsclient# dpkg -i /mnt/*deb
=== FreeBSD ===
[server:~] # portsnap fetch
[server:~] # portsnap update
[server:~] # cd /usr/ports/mail/fetchmail/
[server:ports/mail/fetchmail] # make fetch-recursive
[gate:~] # mount nfs:/usr/ports /usr/ports
[gate:~] # setenv WRKDIRPREFIX /var/tmp
[gate:~] # setenv BATCH yes
[gate:~] # cd /usr/ports/mail/fetchmail/
[gate:ports/mail/fetchmail] # make install clean
[gate:~] # umount /usr/ports