一、安裝:
[barlow@web01 ~]# yum -y install nfs-utils rpcbind
二、權限說明: NFS文件系統的權限主要由兩部分控制:用戶UID和文件/etc/exports 即當客戶端用戶的UID在客戶端的存在的時候,直接使用服務器端該UID對NFS系統所擁有的權限(root在一些特別的情況下例外,後面會說到)。 /etc/exports文件可以對NFS系統權限進行集中的管控:
[barlow@web01 ~]#vim /etc/exports
/home/public 192.168.8.0/24(ro) localhost(rw) *.ev.ncku.edu.tw(ro,sync)
[分享目錄] [第一部主機(權限)] [可用主機名] [可用通配符]
至於主機名稱的設定主要有幾個方式:
至於權限方面(就是小括號內的參數) 常見的參數則有:
參數值 內容說明 rw ro 該目錄分享的權限是可讀寫(read-write) 或只讀(read-only),但最終能不能讀寫,還是與文件系統的rwx 及身份有關。 sync async sync 代表資料會同步寫入到內存與硬盤中,async 則代表資料會先暫存於內存當中,而非直接寫入硬盤! no_root_squash root_squash 用戶端使用NFS 檔案系統的帳號若為root 時,系統該如何判斷這個帳號的身份?預設的情況下,用戶端root 的身份會由root_squash 的設定壓縮成nfsnobody, 如此對服務器的系統會較有保障。但如果你想要開放用戶端使用root 身份來操作服務器的檔案系統,那麼這裡就得要開no_root_squash 才行! all_squash 不論登入NFS 的使用者身份為何, 他的身份都會被壓縮成為匿名使用者,通常也就是nobody(nfsnobody) 啦! anonuid anongid anon 意指anonymous (匿名者) 前面關於*_squash 提到的匿名使用者的UID 設定值,通常為nobody(nfsnobody),但是你可以自行設定這個UID 的值!當然,這個UID 必需要存在於你的/etc/passwd 當中!anonuid 指的是UID 而anongid 則是群組的GID 啰。
三、配置: 1、准備工作:
[barlow@web01 ~]# mkdir /home/public ##建立一個用於共享的目錄 [barlow@web01 ~]#chown barlow /home/public ##將目錄所有者改為barlow用戶 [barlow@web01 ~]#service nfs start ##啟動nfs服務
2、案例一:讓root保持原有的root權限
[barlow@web01 ~]# vim /etc/exports
/home/public *(rw,no_root_squash)# 任何人都可以用我的 /home/public ,用通配符來處理主機名,重點在 no_root_squash
3、案例二:同一目錄,不同主機權限不一樣
[barlow@web01 ~]# vim /etc/exports
/home/public 192.168.8.0/24(rw) *(ro)
#繼續累加在後面,注意,我將主機與網域分為兩段(用空格隔開)
4、案例三:給單一主機使用
[barlow@web01 ~]# vim /etc/exports
/home/public 192.168.100.10(rw)
#只有192.168.8.10這個主機可以訪問
我這裡是關閉了SELinux和防火牆iptables的,否則也會有問題
NFS的防火牆配置特別難搞,因為其連接端口處了111和2049是固定的外,其他還會產生很多非固定的端口,因此沒有很好的辦法通過iptables配置來實現。
不過還好在RHEL/CentOS 6.x下,增加了一個可以配置固定端口的辦法,其定義在/etc/sysconfig/nfs中,這個文件配置很多,但一般均不需調整,之需要調整端口相關的即可,具體如下:
[barlow@web01 ~]# vim /etc/sysconfig/nfs
RQUOTAD_PORT=1001
LOCKD_TCPPORT=30001
LOCKD_UDPPORT=30001
MOUNTD_PORT=1002