文件共享的相關知識:
一、在window上的文件共享:
在windows平臺上實現文件共享:在一臺主機1上,將它建成一個文件服務器,監聽在某個端口上,通過此服務將某個目錄共享出去;而
另一臺主機2通過網絡並經過網絡服務來實現訪問主機1上的文件,訪問的路徑:UNC\\文件服務器的ip地址\要共享的目錄;在windows上;
默認在後臺工作的有兩個服務,分別是cif |smbfs,所以說安裝上windows,就相當於一個文件系統服務器。
cifs,smbfs----服務信息塊協議,服務信息塊文件系統來實現的;
二.NFS概述
1.Unix文件服務實現----->NFS(基於rpc,用於在同一網絡中主機之間實現文件共享的服務)
2.NFS----網絡文件系統,縮寫是Network File Server;文件共享協議
文件傳輸和文件共享是依賴於RPC實現的
3.NFS理解的說法--------其功能是透過網絡,讓不同的機器、不同的操作系統、可以彼此分享個別文檔。所以可以簡單的將他看做一個
文件服務器,讓自己的PC來將網絡遠程的NFS服務器分享的目錄,掛載到本地端的機器當中,在本地端的機器看起來,那個遠程主機的目
錄就好像是自己的一個磁盤分區槽一樣.
4.NFS的位置----位於linux內核中
linux VFS將所有文件系統的抽象爲統一接口,此接口是VFS;ext3,iso9660,nfs訪問接口是VFS;
共享文件不能使用root 用戶;
5.NFS版本:NFSv1------sun公司內部使用
NFSv2------完全基於UDP協議
NFSv3-----redhat5系列使用;安全的異步async文件共享功能;支持TCP協議;支持64位文件大小;支持一次讀取或寫出;
支持Kerberos協議;
注:kerberos---補充NIS的缺點的服務,token令牌,增強認證機制,提供健壯的集中認證的用戶驗證;
NFSv4------redhat6系列使用;kerteros實現全方位的用戶認證
6.NFS支持認證:主機、用戶UID號
NIS基於集中認證:到服務器上識別用戶的賬號和密碼;此服務叫NIS網絡信息系統;以前叫yp---黃頁 yellowpage
NFS(NIS)一起工作,提高安全性;NIS只用於內網
NIS----集中實現用戶身份認證
kerberos----補充NIS缺點的服務;主機1的用戶生成一段數據,用主機2進行加密,發送給Kerberos,再進行解密。
7.網絡訪問權限:
取決於文件系統權限和共享權限交集
寫權限是獨佔的,排他
讀權限是共享
8.NFS啓動:
軟件包:nfs-utils
啓動5個進程:nfsd ,rpc.mountd ,rpc.statd,lockd ,rpc.quotad
腳本: nfs(nfsd,rcp.mountd,rpc.quotad), nfslock(rpc.statd,lockd)
接口: 2049/tcp and 2049/udp (nfsd), others semi-random (found through portmap (111/tcp and 111/udp)
配置文件: /etc/exports, /etc/sysconfig/nfs
9.在配置文件/etc/exports中定義共享文件的配置:
共享目錄 [客戶端1(共享權限)] [客戶端2(共享權限)].......
以上的相關含義:
共享目錄:欲共享目錄的實際路徑(使用絕對路徑);有空格,用引號‘’
客戶端(訪問客戶端列表):可訪問該共享的客戶端進行相關配置,指定客戶端匹配的條件,如果不指定,則所有客戶端均匹配;
定義匹配條件的形式:1.FQDN 2.IP地址 3.網段 4.DNS區域 5.通配符 6.ip網絡地址
共享權限屬性:ro-----設置共享爲只讀,這是默認選項
rw------設置共享爲讀寫
async----數據異步;先將數據保存在內存,再回寫入硬盤。提高效率,有可能數據丟失
sync----保持數據同步,同時將數據寫入內存和硬盤,這是默認選項
root_squash----當NFS客戶端當前用戶是root時,將被映射爲NFS服務器匿名用戶
no_root_squash-----當NFS客戶端當前用戶是root時,將被映射爲NFS服務器root用戶
all_squash----將所有用戶映射爲NFS的匿名用戶,這是NFS默認選項
注意:在定義客戶端匹配條件及參數時,在多個客戶端匹配條件之間必須有空格分隔;
而在客戶端匹配條件與參數之間不能有空格;
在配置NFS共享目錄完成後,需要重啓NFS服務或通過exportfs -ar使配置生效;最後也可以通過showmount -e查看配置情況;
也可以通過查看、var/lib/nfs/etab文件NFS共享目錄的所有參數
10.命令
#showmount ------用於查看主機上共享的信息
選項:-e 服務器----可以在服務器上和客戶端上查看
-a 服務器----查看被掛載的主機 ------在服務器和客戶端上都可以查看
-d 服務器---顯示nfs服務器上共享出來的文件系統並且被掛載和訪問的客戶端列表
#exportfs----維護/etc/exports文件定義的共享的文件系統列表,導出文件系統
選項: -a---對所有文件系統進行操作,不能單獨使用
-r-- 未導出的文件系統重新導出
-u---關閉或取消一個或多個文件系統
-v----詳細信息
10.配置NFS服務過程:
1) NFS依賴於RPC協議(Remote Procedure Call)----遠程過程調用,實現在兩臺主機之間基於OSI第五層會話層建立
二進制格式的通信機制;
2)首先檢查portmap服務是否正常和啓動,此服務提供RPC協議
#service portmap status
#rpcinfo -p---查看本地主機rpc上已經註冊的服務並且正在使用的端口
#rpcinfo -p 指定ip地址---查看rpc服務啓動情況
例:rpcinfo -p 172.16.0.1
3)查看是否安裝nfs-utils軟件包;沒有安裝,則安裝;安裝過,就不需要安裝了;使用到的命令:
#rpm -q nfs-utils----查看是否安裝此軟件
#yum install nfs-utils -----安裝軟件
#rpm -qc nfs-utils------查看軟件的配置文件
4)啓動NFS服務
#service nfs status----服務狀態
#service nfs start
#chkconfig nfs on ----開機自動啓動服務
5)配置文件向外提供服務:
1.在配置文件/etc/exports中定義共享文件的配置:
共享目錄 [客戶端1(共享權限)] [客戶端2(共享權限)].......
2.在服務器端創建共享目錄
3.在客戶端創建掛載點
4.在客戶端先進行掛載纔可以到服務器上訪問文件
#mount -t nfs 服務器ip地址:共享目錄 掛載的位置
#mount -t nfs 172.16.100.1:/vhosts /mnt/nfs
5.創建第二個共享文件
在/etc/exports文件中添加
共享目錄 [客戶端1(共享權限)] [客戶端2(共享權限)].......
使用命令不需要掛載
#exportfs -u 172.16.0.0/16:/mydata----導出某個文件系統
#exportfs -u---取消所有的文件系統
#exportfs -arv ----重新導出所有的文件系統
#exportfs -rv----重新導出所有文件系統
#exportfs -r ----重新導出所有文件系統
#rpcinfo -p localhost---NFS端口是隨機的,查看端口
7.NFS服務認證機制的驗證
如果服務器創建的用戶和客戶端創建的用戶,他們的UID一樣,則可以在客戶端的掛載點目錄下創建
和刪除文件;要是不一樣,則不能創建文件。
具體過程用一個例子:
1.在服務器端:
#vim /etc/exports填寫內容:
/vhosts 172.16.0.0/16(rw) 192.16.0.0/24(ro)
#rpcinfo -p 172.16.100.1 ----在客戶端輸入查看
#service nfs restart----在服務器上輸入
2.客戶端和服務器端都可以輸入:
#showmount -e 172.16.100.1
#showmount -a 172.16.100.1
#showmount -d 172.16.100.1
3. 在服務器上創建目錄及文件:
#mkdir /vhosts/{magdu,linux} -pv
4.在客戶端建目錄及文件
#mkdir /mnt/nfs
5.在客戶端先掛載纔可以訪問服務器上的文件
#mount -t nfs 172.16.100.1:/vhosts /mnt/nfs----掛載---客戶端執行命令
#cd /mnt/nfs
#ls
#cp linux/ /tmp -r
#touch a.txt ---無法創建
6.創建第二個共享文件時,不能重啓服務,在服務器端服務
#exportfs -u 172.16.0.0/16:/mydata----導出某個文件系統
#exportfs -u---取消所有的文件系統
#exportfs -arv ----重新導出所有的文件系統
#exportfs -rv----重新導出所有文件系統
#exportfs -r ----重新導出所有文件系統
#rpcinfo -p localhost---NFS端口是隨機的,查看端口
7.NFS服務認證機制的驗證
服務器創建用戶
#useradd gentoo
#chown -R gentoo:gentoo /vhosts/
#ll -d /vhosts
#id gentoo
客戶端創建用戶;
#useradd gentoo
#su -gentoo
#useradd add -u 503 centos
#cd /mnt/nfs
#touch a.txt ---創建成功
如果服務器創建的用戶和客戶端創建的用戶,他們的UID一樣,則可以在客戶端
的掛載點目錄下創建和刪除文件;要是不一樣,則不能創建文件。