NFS服務(wù)器配置實(shí)例教程
一、NFS服務(wù)器簡(jiǎn)介
什么是NFS呢?它是Network File system的縮寫(xiě),即網(wǎng)絡(luò)文件系統(tǒng)。
NFS是由Sun公司開(kāi)發(fā),并于1984年推出的一個(gè)RPC服務(wù)系統(tǒng),它使我們能夠達(dá)到文件的共享,在不同的系統(tǒng)間使用,所以它的通信協(xié)議設(shè)計(jì)與主機(jī)及操作系統(tǒng)無(wú)關(guān)。當(dāng)用戶想使用遠(yuǎn)程文件時(shí)只要用“mount”命令就可把遠(yuǎn)程文件系統(tǒng)掛接在自己的文件系統(tǒng)之下,使遠(yuǎn)程的文件與使用本地計(jì)算機(jī)上的文件一樣。
例如在計(jì)算機(jī)A上,要把計(jì)算機(jī)B上的/usr/man掛接到A的/usr/man只需執(zhí)行如下命令即可:
mount B:/usr/man /usr/man
用戶不但可以mount(掛接)目錄,而且可以掛接一個(gè)文件。在掛接之后用戶只能對(duì)文件做讀?。ɑ蛘邔?xiě)入)的操作,而不能在遠(yuǎn)程計(jì)算機(jī)上把此文件或目錄移動(dòng)或刪除,但是如果掛接 /usr/man后,則不能再掛接 /usr/man底下的目錄,否則會(huì)發(fā)生錯(cuò)誤。
NFS就是一種促使servers(服務(wù)器)上的文件能被其他的計(jì)算機(jī)掛接而達(dá)到資源共享的網(wǎng)絡(luò)文件系統(tǒng),使用這些文件的計(jì)算機(jī)就可稱為Client(客戶機(jī)),一個(gè)客戶機(jī)可以從服務(wù)器上掛接一個(gè)文件或者一個(gè)層次的目錄。然而,事實(shí)上任何一臺(tái)計(jì)算機(jī)都可以是NFS服務(wù)器或NFS客戶機(jī),甚至同時(shí)為NFS 服務(wù)器和NFS客戶機(jī)。
NFS服務(wù)器所共享出來(lái)的文件或目錄都記錄在/etc/exports文件中,當(dāng)啟動(dòng)NFS服務(wù)器時(shí),腳本/etc/rc.d/rc會(huì)自動(dòng)啟動(dòng)exportfs程序,搜索/etc/exports這一個(gè)文件是否存在,并且賦予正確的權(quán)限給所有共享出去的文件或目錄。
但需要注意的是,只有服務(wù)器所共享出去的文件或目錄,NFS客戶機(jī)才能夠掛接。同樣,當(dāng)啟動(dòng)客戶機(jī)時(shí),系統(tǒng)會(huì)自動(dòng)去掛接所有服務(wù)器共享的目錄或文件,而掛接到的所有路徑都會(huì)記錄在/etc/fstab下。
當(dāng)客戶機(jī)掛接一個(gè)目錄或文件時(shí),并不是說(shuō)復(fù)制服務(wù)器上的這一個(gè)目錄或文件到本地的計(jì)算機(jī)上,而是在使用時(shí)從服務(wù)器上讀取文件到本地的內(nèi)存中,因此,可以用cd進(jìn)入這一個(gè)掛接到的目錄,就如同進(jìn)入本地的目錄一樣
二、配置NFS服務(wù)器時(shí)的幾個(gè)重點(diǎn)
配置NFS服務(wù)器的一般步驟:
(1)確定計(jì)算機(jī)為NFS文件系統(tǒng)的服務(wù)器。
(2)對(duì)服務(wù)器上的硬盤(pán)進(jìn)行分區(qū),確定哪一些分區(qū)是要用來(lái)作為客戶機(jī)所共享的文件系統(tǒng)。
(3)確定每一臺(tái)客戶機(jī)的訪問(wèn)參數(shù)(即讀寫(xiě)的權(quán)限)。
(4)創(chuàng)建/etc/exports文件(一般系統(tǒng)都有一個(gè)缺省的exports文件,可以直接修改;如果沒(méi)有,自己創(chuàng)建一個(gè))
(5)重新啟動(dòng)NFS服務(wù)器或者用命令exportfs -a輸出所有的目錄,并且用nfsd &啟動(dòng)nfsd守護(hù)進(jìn)程。
配置時(shí)的注意事項(xiàng):
(1)檢查/etc/exports輸出路徑的權(quán)限,確定只有root才能修改,其他用戶只能讀。
(2)假如計(jì)算機(jī)沒(méi)有NIS服務(wù),當(dāng)更改資料時(shí)要修改下面的文件:
/etc/passwd
/etc/group
/etc/hosts
/etc/ethers
(3)為自己的網(wǎng)絡(luò)設(shè)置安全。
/etc/exports文件的例子
/ master(rw) trusty(rw,no_root_squash)
/projects proj*.local.domain(rw)
/home/joe pc001(rw,all_squash,anonuid=150,anongid=100)
exports文件的格式為:
共享目錄 主機(jī)(選項(xiàng))
這里需要注意:
ro 該主機(jī)有只讀的權(quán)限
rw 該主機(jī)對(duì)該共享目錄有即可讀又可寫(xiě)的權(quán)限
root_squash 客戶機(jī)用root用戶訪問(wèn)該共享文件夾時(shí),將root用戶映射成nobody用戶。
no_root_squash 客戶機(jī)用root用戶訪問(wèn)該共享文件夾時(shí),不映射root用戶。
all_squash 客戶機(jī)上的任何用戶訪問(wèn)該共享目錄時(shí)都映射成nobody用戶。
anonuid 將客戶機(jī)上的用戶映射成指定的uid的用戶。
上面的示例文件中:
/ zhang(rw) wang(rw,no_root_squash)
該命令行表示共享服務(wù)器上的 / 目錄,只有zhang和wang兩臺(tái)主機(jī)可以訪問(wèn),并且兩臺(tái)主機(jī)對(duì)該共享目錄都有可讀可寫(xiě)的權(quán)限;zhangr主機(jī)在用root身份訪問(wèn)時(shí),將客戶機(jī)的 root用戶映射成服務(wù)器上的nobody用戶(root_squash參數(shù),該參數(shù)為缺省參數(shù)),相當(dāng)于在服務(wù)器上使用nobody用戶訪問(wèn)該目錄; wang主機(jī)在用root用戶訪問(wèn)該共享目錄時(shí),不映射root用戶(no_root_squash參數(shù)),即相當(dāng)于在服務(wù)器上用root身份訪問(wèn)該目錄。
/projects proj*.local.domain(rw)
該命令行表示共享/projects目錄,local.domain域中所有以proj開(kāi)頭的主機(jī)都可以訪問(wèn)該目錄,并且都有讀寫(xiě)的權(quán)限,客戶機(jī)上的任何用戶在訪問(wèn)時(shí)都映射成nobody用戶(all_squash參數(shù),該參數(shù)為缺省參數(shù))。這里需要特別說(shuō)明的是,如果客戶機(jī)要在該共享目錄上保存文件,則服務(wù)器上的nobody用戶對(duì)/projects目錄必須要有寫(xiě)的權(quán)限。
/home/joe pc001(rw,all_squash,anonuid=150,anongid=100)
該命令行表示共享/home/joe目錄,只有名為pc001的主機(jī)可以訪問(wèn),pc001主機(jī)對(duì)該目錄有讀寫(xiě)的權(quán)限,并且所有的用戶都映射成服務(wù)器上的uid為150、gid為100的用戶。
設(shè)置NFS客戶機(jī)的操作步驟
(1)編輯好/etc/fstab這一個(gè)文件,確定要掛接的路徑都在fstab中。
(2)依照f(shuō)stab所設(shè)置的內(nèi)容,在客戶機(jī)上設(shè)置好掛接點(diǎn)(mount point)。(mount_points就是用mkdir設(shè)置exports所輸出的路徑)
(3)確定所要掛接的路徑,都會(huì)出現(xiàn)在/etc/exports文件中
(4)可以執(zhí)行mount命令連結(jié)server上的共享目錄(mount-a)
如果只是臨時(shí)使用,可以直接用mount命令:
mount servername:共享目錄 本地目錄,例如:
mount 192.168.100.1:/share /mnt
該命令將192.168.100.1上的/share目錄掛接到本地的/mnt目錄(當(dāng)然,服務(wù)器端必須要先設(shè)置共享該目錄)。
/etc/fstab文件的例子
192.168.100.1:/home/joe /mnt nfs rw 0 0
mount的語(yǔ)法
mount –t type[-rv] -o[option] server:pathname mount_point
mount:
mount-a把/etc/fstab中所列的路徑全部掛上
mount myhost:/usr/local /usr/local/myshare
把myhost的/usr/local目錄掛接到client的 /usr/local/myshare上并且是readonly上。
-t type:用戶所要掛接的文件系統(tǒng)類(lèi)型,如nfs
-r:所掛接的路徑定為readonly
-v:掛接過(guò)程的每一個(gè)動(dòng)作,都有消息傳回到屏幕上
umount命令:
不使用該共享目錄時(shí),可以把該目錄卸載。
umount mount_point,例如:
umount /mnt
umount-a卸載所有已經(jīng)掛接上的路徑
NFS服務(wù)器配置實(shí)例
某公司需要在網(wǎng)絡(luò)上共享一個(gè)文件夾,所有人都只有只讀權(quán)限,且只有192.168.1.0/24子網(wǎng)的用戶可以訪問(wèn),試通過(guò)NFS共享該文件夾。NFS服務(wù)器的IP地址是192.168.1.1。
具體操作步驟如下:
(1)以root身份登錄,在/目錄下創(chuàng)建目錄share。
[root@bearzhang /]#mkdir share
(2)編輯/etc/exports文件,在該文件中加入下面的命令行。
/share 192.168.1.0/24(ro,root_squash)
“/share”表示要共享的目錄,192.168.1.0/24表示允許訪問(wèn)的主機(jī)(這里是一個(gè)子網(wǎng)的主機(jī)),括號(hào)內(nèi)的ro表示客戶機(jī)上的用戶對(duì)該共享目錄只有只讀權(quán)限,root_squash表示當(dāng)客戶機(jī)上的root用戶訪問(wèn)該共享目錄時(shí),映射該用戶為匿名用戶,即當(dāng)客戶機(jī)上的root用戶訪問(wèn)該共享目錄時(shí)相當(dāng)于服務(wù)器上的anonymous(nobody)用戶。
(3)在192.168.1.0/24子網(wǎng)上的任意一臺(tái)客戶機(jī)上安裝共享目錄。
[root@bearzhang root]#mount 192.168.1.1:/share /mnt
上面命令行的意思是:將192.168.1.1上的/share目錄作為一個(gè)分區(qū)掛接到本機(jī)的/mnt目錄下。
(4)測(cè)試權(quán)限。