linux之nfs服務

被时光移动的城市發表於2024-12-05

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

相關文章