linux之nfs服务

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
posted @ 2024-12-05 21:35  被时光移动的城市  阅读(10)  评论(0编辑  收藏  举报