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
Never try,never know