關(guān)于NFS參數(shù)說(shuō)明——在文件服務(wù)器上(16)/etc/exports中配置10.X.X.X(fsid=2,rw,sync,no_root_squash)
rw 可讀寫(xiě)的權(quán)限
ro 只讀的權(quán)限
no_root_squash 登入NFS主機(jī),使用該共享目錄時(shí)相當(dāng)于該目錄的擁有者,如果是root的話,那么對(duì)于這個(gè)共享的目錄來(lái)說(shuō),他就具有root的權(quán)
限,這個(gè)參數(shù)『極不安全』,不建議使用
root_squash 登入NFS主機(jī),使用該共享目錄時(shí)相當(dāng)于該目錄的擁有者。但是如果是以root身份使用這個(gè)共享目錄的時(shí)候,那么這個(gè)使用者(root)
的權(quán)限將被壓縮成為匿名使用者,即通常他的UID與GID都會(huì)變成nobody那個(gè)身份
all_squash 不論登入NFS的使用者身份為何,他的身份都會(huì)被壓縮成為匿名使用者,通常也就是nobody
anonuid 可以自行設(shè)定這個(gè)UID的值,這個(gè)UID必需要存在于你的/etc/passwd當(dāng)中
anongid 同anonuid,但是變成groupID就是了
sync 資料同步寫(xiě)入到內(nèi)存與硬盤(pán)當(dāng)中
async 資料會(huì)先暫存于內(nèi)存當(dāng)中,而非直接寫(xiě)入硬盤(pán)
insecure 允許從這臺(tái)機(jī)器過(guò)來(lái)的非授權(quán)訪問(wèn)
/etc/exports 部分實(shí)例
1./tmp *(rw,no_root_squash) //*號(hào)表示所有的IP都可以訪問(wèn)
2./tmp *(rw)
/home/public 192.168.0.*(rw) *(ro) //下面兩行作用一樣
/home/public 192.168.0.0/24(rw) *(ro)
3./home/test 192.168.0.100(rw) //只對(duì)某部機(jī)器設(shè)置權(quán)限
4./home/linux *.linux.org(rw,all_squash,anonuid=40,anongid=40)當(dāng)*.linux.org 登陸此NFS主機(jī),并且在/home/linux下面寫(xiě)入文件時(shí),該文件的所有人與所有組,就會(huì)變
成/etc/passwd里面對(duì)應(yīng)的UID為40的那個(gè)身份的使用者了。
注意:修改了/etc/exports后,并不需要重啟nfs服務(wù),只要用exportfs重新掃描一次/etc/exports,并且重新加載即可
exportfs[-aruv]
參數(shù) 含義
a 全部掛載(或卸載)/etc/exports檔案內(nèi)的設(shè)定
r 重新掛載/etc/exports 里面的設(shè)定,也同步的更新/etc/exports和/var/lib/nfs/xtab里面的內(nèi)容
u 卸載某一目錄
v 在export的時(shí)候,將分享的目錄顯示到熒屏上
#exportfs -rv//重新export一次
#exportfs -au//全部卸載
舉例
node1:~ # df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 9.6G 2.4G 7.2G 25% /
tmpfs 126M 8.0K 126M 1% /dev/shm
172.16.12.89:/home/test
9.6G 2.4G 7.2G 26% /home/nfs
node2:~ # exportfs -av
exporting *:/home/test
node1:~ # umount /home/nfs/
node1:~ # df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 9.6G 2.4G 7.2G 25% /
tmpfs 126M 8.0K 126M 1% /dev/shm
showmount命令
語(yǔ)法:showmount [-aed] [hostname]
-a:顯示目前以及連上主機(jī)的client機(jī)器的使用目錄的狀態(tài)
-e:顯示hostname的/etc/exports里面共享的目錄
-d:只顯示被client機(jī)器掛載的目錄
NFS故障解決
1、can't contactportmapper: RPC:Remotesystem error-Connection refused:
出現(xiàn)這個(gè)錯(cuò)誤信息是由于SEVER端的PORTMAP沒(méi)有啟動(dòng)。
2、mountclntudp_create: RPC: Programnotregistered:NFS沒(méi)有啟動(dòng)起來(lái),可以
用showmout-ehost命令來(lái)檢查NFSSERVER是否正常啟動(dòng)起來(lái)。
3、mount: localhost:/home/test failed, reason given by server: Permission denied:
這個(gè)提示是當(dāng)client要mountnfsserver時(shí)可能出現(xiàn)的提示,意思是說(shuō)本機(jī)沒(méi)有權(quán)限去mount nfsserver上的目錄。解決方法當(dāng)然是去修改NFSSERVER咯。
4、被防火墻搞掉
這個(gè)原因很多人都忽視了,在有嚴(yán)格要求的網(wǎng)絡(luò)環(huán)境中,我們一般會(huì)關(guān)閉linux上的所有端口,當(dāng)需要使用哪個(gè)端口的時(shí)候才會(huì)去打開(kāi)。而NFS默認(rèn)是使用111端口,所以我們先
要檢測(cè)是否打開(kāi)了這個(gè)端口,另外也要檢查TCP_Wrappers的設(shè)定。
重新設(shè)置防火墻,包括iptables與TCP_Wrappers,因?yàn)榧せ盍藀ortmap,所以端口111必須提供出去.因此在iptablesrules中,要增加:
iptables-AINPUT-pTCP --dport111-jACCEPT
iptables-AINPUT-pUDP --dport111-jACCEPT
如果還不行,那就是TCP_Wrappers的問(wèn)題,檢查/etc/hosts.deny,如果有一行是:
ALL:ALL: deny
那就必須在/etc/hosts.allow中增加:
portmap:ALL:allow
注意:由于NFS使用的這個(gè)RPC在client端連上主機(jī)時(shí),那么你的主機(jī)想要關(guān)機(jī),那可就會(huì)成為『不可能的任務(wù)』。即如果你的Server上面還有Client在聯(lián)機(jī),那么你要關(guān)機(jī),可能
得要等到數(shù)個(gè)鐘頭才能夠正常的關(guān)機(jī)成功!所以,建議在NFSServer要關(guān)機(jī)之前,要先『關(guān)掉portmap與nfs』這兩個(gè)東西。如果無(wú)法正確的將這兩個(gè)daemons關(guān)掉,那么先以
netstat -utlp找出PID,然后kill掉。
NFS客戶端設(shè)置
為了擔(dān)心會(huì)不小心將NFS端掛進(jìn)來(lái)的具有SUID權(quán)限檔案的程序執(zhí)行,root可以將NFS所分享的目錄以較為安全的情況掛載進(jìn)來(lái),可以
#mount-t nfs -o nosuid,ro hostname:/directory/mountponit
mountnfs的其它可選參數(shù):
HARD:在后臺(tái),NFSCLIENT會(huì)不斷的嘗試與SERVER的連接,直到mount上
SOFT:會(huì)在前臺(tái)嘗試與SERVER的連接,是默認(rèn)的連接方式。當(dāng)收到錯(cuò)誤信息后終止mount嘗試,并給出相關(guān)信息。
例如:mount-F nfs -o hard192.168.0.10:/nfs /nfs
timeo=n:設(shè)置超時(shí)時(shí)間,當(dāng)數(shù)據(jù)傳輸遇到問(wèn)題時(shí),會(huì)根據(jù)這個(gè)參數(shù)嘗試進(jìn)行重新傳輸
intr 允許通知中斷一個(gè)NFS調(diào)用。當(dāng)服務(wù)器沒(méi)有應(yīng)答需要放棄的時(shí)候有用處。
retry=n:設(shè)定當(dāng)網(wǎng)絡(luò)傳輸出現(xiàn)故障的時(shí)候,嘗試重新連接多少時(shí)間后不再嘗試。默認(rèn)的數(shù)值是10000minutes
同時(shí)使用多個(gè)參數(shù)的方法:mount -t nfs -o timeo=3,udp,hard 192.168.0.30:/tmp/nfs
注意:NFS客戶機(jī)和服務(wù)器的選項(xiàng)并不一定完全相同,而且有的時(shí)候會(huì)有沖突。比如說(shuō)服務(wù)器以只讀的方式導(dǎo)出,客戶端卻以可寫(xiě)的方式mount,雖然可以成功mount上,但嘗
試寫(xiě)入的時(shí)候就會(huì)發(fā)生錯(cuò)誤。一般服務(wù)器和客戶端配置沖突的時(shí)候,會(huì)以服務(wù)器的配置為準(zhǔn)。