建置 NFS Server 有三個重點組態檔:
/etc/exports
/etc/hosts.allow
/etc/hosts.deny
通常編輯 /etc/exports 就能讓 NFS 運作。
當一個 request 進來,伺服器會依序這樣作:
一、首先檢查是不是 hosts.allow 裡列的client,如果是就允許存取,如果不是就到下一個檢查。
二、接著檢查是不是 hosts.deny 裡列的client,如果是就拒絕存取,如果不是就到下一個檢查。
三、若這個 client 不在 hosts.allow 也不在 hosts.deny,那就允許這個 client 存取。
//------------------------------------------------
(安裝 NFS 套件)
apt-get update &&
apt-get install nfs-kernel-server
=>修改 /etc/default/portmap
確認 -i 127.0.0.1 是註解掉的
(禁止主機和伺服器進行NFS連接)
=>修改 /etc/hosts.deny
------------------------------
ALL:ALL
------------------------------
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL
------------------------------
(允許主機和伺服器進行NFS連接)
=>修改 /etc/hosts.allow
------------------------------
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL
------------------------------
portmap: 192.168.0.
lockd: 192.168.0.
rquotad: 192.168.0.
mountd: 192.168.0.
statd: 192.168.0.
------------------------------
(NFS掛載目錄及權限)
=>修改 /etc/exports
------------------------------
/home/sw/open_fd *(rw,sync,no_root_squash)
/home/sw/share_folder 192.168.0.*(rw,sync,no_root_squash)
------------------------------
更新
sudo exportfs -ra
sudo /etc/init.d/nfs-kernel-server restart
權限方面常見的參數(小括號內的參數):
rw:read-write,可讀寫的權限。
ro:read-only,唯讀的權限。
sync:資料同步寫入到記憶體與硬碟當中。
async:資料會先暫存於記憶體當中,而非直接寫入硬碟。
no_root_squash:登入 NFS 的使用者,如果是 root 時,對於這個分享的目錄來說,使用者具有 root 的權限。
root_squash:登入 NFS 的使用者,如果是 root 時,對於這個分享的目錄來說,使用者的權限都會被壓縮成為匿名使用者。
all_squash:不論登入 NFS 的使用者身份為何,使用者的權限都會被壓縮成為匿名使用者。
(檢查配置)
showmount -e NFS-SERVER-IP
(e.g)
showmount -e 192.168.13.5
(掛載遠端目錄)
mount -t nfs NFS-SERVER-IP:SHARE-PATH-FD MOUNT
mount -F nfs [-o mount-options] server:/directory /mount-point
(e.g)
mount -t nfs 192.168.13.15:/home/sw/open_fd /mnt
留言列表