1.使用nfsnobody
■
___________________________________________________________
--------------------安裝
yum install nfs-utils rpcbind -y
#服務端和用戶端安裝
--------------------服務端配置
mkdir /data
#建立共享目錄
chown -r nfsnobody:nfsnobody /data
#授權nfs使用者
vim /etc/exports
#編輯配置檔案
/data 192.168.1.0/24(rw,sync)
/etc/init.d/rpcbind start
/etc/init.d/nfs start
#啟動服務,必須先啟動rpc
showmount -e localhost
#本地showmount測試
----------------------用戶端配置
mount -t nfs 192.168.1.203:/data /mnt
df
filesystem 1k-blocks used available use% mounted on
192.168.1.203:/data 49097600 1268480 45335040 3% /mnt
----------------------測試
touch test.txt
ll
-rw-r--r--. 1 nfsnobody nfsnobody 0 2月 20 2016 test.txt
2.使用固定uid使用者
id szk #在服務端和用戶端檢視是否有此使用者
uid=500(szk) gid=500(szk) 組=500(szk)
mkdir /szk
chown -r szk:szk /szk
#建立和授權目錄
echo "/szk 192.168.1.0/24(rw,sync,all_squash,anonuid=500,anongid=500)" >> /etc/exports
/etc/init.d/nfs reload
#修改配置檔案并重載服務
showmount -e localhost
#本地測試
export list for localhost:
/szk 192.168.1.0/24
/data 192.168.1.0/24
--------------------用戶端挂載測試
mkdir /szk
mount -t nfs 192.168.1.203:/szk /szk
df -h
192.168.1.203:/szk 47g 1.3g 44g 3% /szk
touch /szk/test.txt
ll /szk/test.txt
-rw-r--r--. 1 szk szk 0 2月 20 2016 test.txt
3.相關優化參數
安全性能優化參數,禁止給予執行權限,禁止更新檔案的inode時間戳及加大傳輸size
mount -t nfs -o nosuid,noexec,nodev,noatime,nodiratime,intr,rsize=131072,wsize=131072 192.168.1.203 /data/mnt
4.開機啟動及挂載
echo "/etc/init.d/rpcbind start" >> /etc/rc.local
echo "/etc/init.d/nfs start" >> /etc/rc.local
#統一運維規範将服務的啟動指令放置到/etc/rc.local檔案中,而不是用chkconfig管理。當運維人員離職及業務遷移,可以很直覺的看到相關服務
echo "mount -t nfs 192.168.1.203:/data /mnt" >> /etc/rc.local
為什麼不在fstab中挂載?
#因為fstab啟動優于網絡子產品,挂載網絡檔案系統時,無法在fstab中挂載成功,故放置在/etc/rc.local中
為什麼需要先開機先開nfs服務端,關機先關用戶端?
因為當用戶端優于服務端啟動時,會導緻無法正常挂載;當伺服器優于用戶端關閉,會導緻用戶端無法正常關閉