NFS服務
- network file system 網路檔案系統
- 解決本地硬碟瓶頸
1.安裝
2.配置
3.建立必要得目錄並修改屬主屬組及許可權
4.啟動服務
5.測試掛載
# 檢視配置檔案目錄
[root@nfs ~]# rpm -qc nfs-utils
/etc/idmapd.conf
/etc/nfs.conf
/etc/nfsmount.conf
/etc/request-key.d/id_resolver.conf
/var/lib/nfs/etab
/var/lib/nfs/rmtab
#編輯 把服務端/data目錄共享 172.16.1.0/24段主機可以訪問,具有rw許可權,並壓縮使用者傳輸
[root@nfs ~]# cat /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash)
#啟動服務
systemctl start nfs
#檢視nfs服務端 埠服務是否在執行
[root@nfs ~]# rpcinfo -p
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 60834 status
100024 1 tcp 59943 status
100005 1 udp 20048 mountd
100005 1 tcp 20048 mountd
100005 2 udp 20048 mountd
100005 2 tcp 20048 mountd
100005 3 udp 20048 mountd
100005 3 tcp 20048 mountd
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049 nfs_acl
100021 1 udp 58494 nlockmgr
100021 3 udp 58494 nlockmgr
100021 4 udp 58494 nlockmgr
100021 1 tcp 43553 nlockmgr
100021 3 tcp 43553 nlockmgr
100021 4 tcp 43553 nlockmgr
#檢視是否共享成功
#showmount -e #服務端
[root@nfs ~]# showmount -e
Export list for nfs:
/data 172.16.1.0/24
#檢視nfs/etab是否有data目錄
[root@nfs ~]# cat /var/lib/nfs/etab
/data 172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,all_squash)
#客戶端檢視
[root@web01 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
#測試掛載
[root@web01 ~]# mount -t nfs 172.16.1.31:/data /test
#寫入檔案許可權拒絕,實際以服務端的nfs程序虛擬使用者身份往/test寫 ,/test 屬主屬組是root,o位置為r-x,其他人無寫許可權,故許可權拒絕
[root@web01 ~]# touch /test/1.txt
touch: cannot touch '/test/1.txt': Permission denied
[root@nfs ~]# ll /data/ -d
drwxr-xr-x 2 root root 6 Dec 4 14:16 /data/
#透過 檢視此檔案得知 /var/lib/nfs/etab 預設nfs建立的虛擬使用者uid為anonuid=65534,anongid=65534
[root@nfs ~]# grep 65534 /etc/passwd
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
#修改服務端/data 目錄屬主屬組為nobody
[root@nfs ~]# chown nobody.nobody /data/
#再次測試客戶端寫入,發現是以nobody服務端虛擬使用者身份寫入的
[root@web01 ~]# touch /test/1.txt
[root@web01 ~]# ll /test/
total 0
-rw-r--r-- 1 nobody nobody 0 Dec 4 2024 1.txt
#服務端
[root@nfs ~]# ll /data/
total 0
-rw-r--r-- 1 nobody nobody 0 Dec 4 14:40 1.txt
NFS引數
# 配置目錄的引數 /etc/exports
ro 僅僅只讀
rw 可讀可寫
sync 同時將記憶體資料寫入硬碟
172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666) # 指定anonuid gid需要提前新增虛擬使用者
useradd -s /sbin/nologin -u 666 -M nfs
同時修改服務端共享目錄 /data 屬主屬組nfs
chown nfs.nfs /data
#重啟服務生效
開機自動掛載
vim /etc/fstab
172.16.1.31:/data /test nfs defaults 0 0