nfs 基礎1

NFS:網絡文件系統 一般都工作在內核空間

任何程序只要我們能自己執行命令的一定是工作在用戶空間,因爲內核空間的程序只有內核自我能夠管理,,除非我

們使用接口與內核進行交互。(不準,自己就這麼理解吧)

NFS:通過RPC來連接兩個主機

PRC :一種編程技術,協議分爲服務器端和客戶端,他倆之間能夠連接2個主機,從而使倆主機之間看上去就像一個主機一樣,由此可完成兩個主機間的進程通信(就好像本地兩個進程間通信一樣)

本地進程間通信或者進程和內核進行通信:通過IPC機制或系統調用,或函數調用。(IPC機制是指:信號量,共享內存,消息隊列)

NFS:只能驗證IP不能驗證用戶名  protmap 監控TCP/UDP的111端口

NFS:啓動3個進程 NFSD(nfs的主服務),MOUNTED(接受nfs掛載請求的),quotad 限定客戶端在本地可以使用對打磁盤空間的。

nfsd:2049/tcp 2049/udp

mounted與quotad的端口都是半隨機的(之所以稱爲半隨機是因爲他不是自己打開的,是像rpc註冊使用的,是rpc幫他選取的)

nfslock:鎖  (每個用戶向nfs寫文件時都要像nfs申請加鎖,每個文件的鎖,是內核持有的鎖)

nfs配置文件:/etc/exports     在配置文件最後添加客戶端信息

/path/to/somedir/ ClIENT LIST

多個客戶之間用空白字符分隔

每個客戶端後面必須立即根一個小括號,裏面定義了次客戶的訪問特性,如訪問權限等

如:

172.16.0.0/16(ro,async,root_squash) 192.168.0.0/24(rw,sync)

root_squash:將root用戶映射爲來賓賬號:默認啓用此選項

no_root_sqush:不將root用戶映射爲來賓賬號

all_squash:將所有賬號映射爲來賓賬號

anonuid,anongid:指定映射的來賓賬號的uid與gid

//--------------------------------------------------------------------------------

debian安裝nfs

安裝nfs服務器端

apt-get install nfs-kernel-server

rpcinfo -p localhost  查看rpc起了哪些服務與端口

vim /etc/exports

/shared          192.168.11.199(ro,async)      #在最後添加你要共享的文件路徑,與共享給那些主機

root@debian:/home/lyw# /etc/init.d/nfs-kernel-server restart 重啓nfs服務

root@debian:/home/lyw# showmount -e 192.168.11.99  查看服務器上給那些主機共享了什麼目錄

安裝nfs客戶端

apt-get install nfs-common

showmount -e 192.168.11.99 查看服務器的共享目錄

mdkir -p /mnt/nfs 創建掛載文件夾

mount -t nfs 192.168.11.99:/shared /mnt/nfs 將共享目錄掛載到文件夾下

服務器端向共享目錄裏cp些文件  在客戶端查看  看是否能看到

showmount -a  服務器端ip或主機名  查看都有哪些客戶端掛載在服務器上及客戶端對應列表  
(根據nfs的版本不同 命令可能顯示的結果不一樣  如 nfs4系統就顯示不出來 有哪些客戶端掛載在服務器上)

開機自動掛載

vim /etc/fastab

192.168.11.99:/shared      /mnt/nfs    nfs    defaults,rnetdev    0 0

rnetdev (指定的網絡設備 開機時如果掛載不上 就自動忽略掉 ,不加的話 如果沒掛上,則機器就起不來了)

//-------------------------------------------------------------------------------------------------------------------------------------------


服務器端:

把所有來訪用戶都映射爲uid爲510的賬號

服務器端:
把所有來訪用戶都映射爲uid爲510的賬號
root@debian:/shared# useradd -u 510 nfstest
root@debian:/shared# touch ./nfstest
root@debian:/shared# chown nfstest.nfstest ./nfstest
root@debian:/shared# vim /etc/exports
/shared      192.168.11.199(rw,async,all_squash,anonuid=510,anongid=510)
root@debian:/shared# exportfs -ra

exportfs命令:

                     -a: 根-r或-u選項同時使用,表示重新掛載所有文件系統或取消導出文件系統

                     -r:重新導出

                     -u:取消導出

                     -v:顯示詳細信息

客戶端:

先卸載 root@zabbix:/home/lyw# umount /mnt/nfs
再掛載 root@zabbix:/home/lyw# mount -t nfs 192.168.11.99:/shared /mnt/nfs
root@zabbix:/mnt/nfs# ls -l

這樣所有客戶端的訪問賬號,都對應服務器端的uid爲510的賬號,服務器uid=510賬號對共享目錄裏的文件有什麼權限,客戶端登陸的賬號就對這些文件有什麼權限











發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章