linuxNFS服務
1、NFS簡介
1.1 什么是NFS
NFS(Network File System)????? 配置簡單????? 權限不太明確
NFS可以讓客戶端把服務器的共享目錄掛載到本機使用,就想使用本機分區一樣,使用非常方便。
1.2 RPC(遠程調用)服務
NFC是被RPC服務管理的,所以必須安裝RPC的主程序rpcbind
1.3 NFS端口
NFS端口:2049
RPC端口:111
NFS daemon端口:隨機
1.4 和其他文件服務器對比(SFU)
服務名稱
適用范圍
服務器端
客戶端
局限性
FTP
內網和公網
Windows、Linux
Windows、Linux
無法直接在服務器端修改數據
Samba
內網
Windows、Linux
Windows、Linux
只能在內網使用
NFS
內網和公網
Linux
Linux(Windows)
客戶端需要掛載使用,對普通用戶有一定的技術要求
2、NFS權限說明
2.1 權限說明
Linux系統目錄權限會生效
NFS服務共享權限也會生效
2.2 用戶身份映射(系統權限)
NFS沒有用戶登錄認證機制,所以客戶端登錄到服務器后,會把客戶端的身份映射到服務器端,就會出現四種可能。
2.3 第一種可能
client和server上剛好有相同的賬號和用戶組(用戶名和UID都要相同)
client上用戶可以再server上按照用戶權限使用文件
2.4 第二種可能
當client和server上擁有相同的UID,但是用戶名不同
假設client上有用戶aa(UID:500),server上有用戶bb(UID:500)。在client在使用server共享目錄是,身份識別為bb(因為LInxu權限綁定在UID上)
此種情況盡量避免出現,容易邏輯混亂
2.5 第三種可能
server上沒有client的UID
client用戶訪問server時,server上沒有此UID,則把此用戶自動轉變為nfsnobody(UID:65534)用戶
2.6 第四種可能
client上是root使用共享
默認把roor也轉變為nfsnobody,服務器端可以修改配置文件,允許root訪問nfs服務器
3、NFS服務器端設置
3.1 服務器端安裝
默認已安裝,如需手動安裝
NFS主程序:nfs-utils
RPC主程序:rpcbind(舊版本 portmap)
3.2 相關文件
配置文件?????? /etc/exports
3.3 服務器端管理
默認已啟動,如需手動啟動
$ service nfs start
$ service rpcbind start
3.4 守護進程
$ ps aux | grep -E “nfs|rpc”
rpc.rquotad???? NFS配額
rpc.mountd???? 處理客戶端掛載
nfsd?????????????? NFS守護進程
rpcbind????????? RPC守護進程
3.5 RPC服務注冊情況
$ rpcinfo –p IP或主機名
4、NFS服務器端配置文件
4.1 配置文件
/etc/exports
共享目錄 客戶端(權限)
4.2 可識別的客戶端
指定IP???????????????? 192.168.44.4
指定網段????????????? 192.168.44.0/24 192.168.44.0/255.255.255.0
指定主機名?????????? www.itxdl.cn
所有主機????????????? *
4.3 常用權限
rw??????????????????????? 讀寫
ro???????????????????????? 只讀
all_squash????????????? 不論登錄是誰,都壓縮為匿名用戶nfsnobody
root_squash?????????? 如果登錄的是root,壓縮為nfsnobody
no_root_squash????? 允許root身份登錄,不推薦
anonuid???????????????? 把所有的登錄用戶,不再壓縮為nfsnobody用戶,而是壓縮為指定uid用戶
sync????????????????????? 將數據同步寫入內存緩沖區與磁盤中,效率低,但可以保證數據的一致性
async??????????????????? 將數據先保存在內存緩沖區中,必要時才寫入磁盤
4.4 舉例1
任何人可以訪問,允許root訪問
$ vi /etc/exports
/home/test *(rw,no_root_squash)
4.5 舉例2
同時共享多個目錄
$ vi /etc/exports
/home/test 192.168.44.3(rw,no_root_squash) *(ro)
/home/soft 192.168.44.0/24(rw)
4.6 舉例3
匿名用戶訪問
$ vi /etc/exports
/home/soft 192.168.44.0/24(rw,all_squash,anonuid=600)
4.7 常用命令
$ exportfs 選項
-a??? 按照配置文件掛載/卸載所有目錄
-r???? 重新掛載
-u??? 卸載
-v??? 顯示詳細信息
4.8 exportfs舉例
$ exportfs -arv????????????? 重新掛載所有目錄,不用重啟NFS服務
$ exportfs -auv?????? 全部卸載所有目錄
4.9 showmount命令
shoumount查看共享目錄
$ shoumount –e IP或主機名
-e??? 產看某個主機的共享目錄
5、NFS客戶端使用
5.1 客戶端需要啟動的服務
需要啟動rpcbind,默認已經啟動
手工啟動命令
$ service rpcbind start
5.2 查看服務器端共享目錄
$ showmount -e 192.168.44.3????????????? 指定服務器端IP即可
5.3 把服務器共享目錄掛載到本地
$ mkdir /home/client??????????? 建立掛載點
$ mount –t nfs 192.168.44.3:/home/soft /home/client???????? 掛在到本地使用
$ mount??????????????? 查看掛載
5.4 卸載
$ umount /home/client
5.5 開機自動掛載
$ vi /etc/fstab 192.168.44.2:/home/test /home/client nfs defaults 0 0
6、權限實驗
6.1 第一種可能
client和server上剛好有相同的賬號和用戶組(用戶組名和UID都要相同)
client上用戶可以再server上按照用戶權限使用文件
服務器
$ useradd –u 600 test1
$ passwd test1
客戶端
一樣的用戶與UID
$ su - test1
$ cd /home/test
$ touch cde
$ ll cde
-rw-rw-r--1 test1 test1 0 11月 14 2016 cde
6.2 第二種可能
當client和server上擁有相同過的UID,但是用戶民不同
假設client上有用戶aa(UID:500),server上有用戶bb(UID:500)。在client在使用server共享目錄時,身份識別為bb(因為Linux權限綁定在UID上)
此種情況盡量避免出現,容易邏輯混亂
服務器端
用戶名:test1 UID:600
客戶端
$ useradd -u 600 user1
$ su - user1
$ cd /home/test
$ touch def
$ ll def
-rw-rw-r-- 1 user1 user1 0 11月 14 2016 def
服務器端
$ ll /tmp/def
-rw-rw-r-- 1 test1 test1 0 11月14 05:40 /tmp/def
6.3 第三種可能
server上沒有client的UID
client用戶訪問server時,server上沒有此UID,則把此用戶自動轉變為nfsnobody(UID:65534)用戶
服務器端
沒有UID為700的用戶
客戶端
$ useradd -u 700 test2
$ touch qwe
$ ll qwe
-rw-rw-r-- 1 nobody nobody 0 11月14 2016 qwe
6.4 第四種可能
client上是root使用共享
默認把root也轉換為nfsnobody。服務器端可以修改配置文件,允許root訪問nfs服務器
服務器端
不允許root訪問
客戶端
$ cd /home/test
$ touch asd
$ ll asd
-rw-r--r-- 1 nfsnobody nfsnobody 0 1月14 2016 asd
服務器端
允許root訪問
$ vi /etc/exports
/tmp 192.168.44.4(rw,no_root_squash)
$ exportfs -auv
$ exportfs -arv
客戶端
$ cd /home/test
$ touch zxc
$ ll zxc
Linux
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。