NFS,vim/etc/ex


NFS


目录
  • NFS
    • nfs工作机制
    • exports文件的格式
    • nfs管理

nfs工作机制

//NFS服务器端运行着四个进程:
nfsd
mountd
idmapd
portmapper

idmapd //实现用户帐号的集中映射,把所有的帐号都映射为NFSNOBODY,但是在访问时却能以本地用户的身份去访问

mountd //用于验证客户端是否在允许访问此NFS文件系统的客户端列表中,在则允许访问(发放一个令牌,持令牌去找nfsd),否则拒绝访问
//mountd的服务端口是随机的,由rpc服务(portmapper)提供随机端口号

nfsd //nfs的守护进程,监听在2049/tcp和2049/udp端口上
//不负责文件存储(由NFS服务器本地内核负责调度存储),用于理解客户端发起的rpc请求,并将其转交给本地内核,而后存储在指定的文件系统上

portmapper //NFS服务器的rpc服务,其监听于111/TCP和111/UDP套接字上,用于管理远程过程调用(RPC)

exports文件的格式

nfs管理

//主机名lnh作为服务端ip是250,主机名xbz作为客户端ip是251.

//在服务端和客户端安装nfs
[root@lnh ~]# dnf -y install nfs-util*
[root@xbz ~]# dnf -y install nfs-util*
//在服务端上面的操作
[root@lnh ~]# mkdir /tushanbu //创建共享目录
[root@lnh ~]# vim /etc/exports
[root@lnh ~]# cat /etc/exports
/tushanbu 192.168.222.251(rw) //要共享的目录加允许访问的ip加权限
[root@lnh ~]# systemctl restart nfs-server.service rpcbind.service  //重启服务
[root@lnh ~]# exportfs -r  //快速生效和重启服务效果差不多
[root@lnh ~]# systemctl stop firewalld.service 
[root@lnh ~]# setenforce 0 //关闭防火墙
//在客户端
[root@xbz ~]# showmount -e 192.168.222.250
Export list for 192.168.222.250:
/tushanbu 192.168.222.251
//查看服务端共享的列表 -e是指定服务端ip
[root@xbz ~]# systemctl restart nfs-server.service rpcbind.service  //重启服务
[root@xbz ~]# mkdir /hai  //创建客户端的挂载点
[root@xbz ~]# mount -t nfs 192.168.222.250:/tushanbu  /hai  
//临时挂载 -t指定格式   挂载来源(服务端ip加挂载目录)  客户端的本地挂载点
[root@xbz ~]# df -Th
Filesystem                Type      Size  Used Avail Use% Mounted on
devtmpfs                  devtmpfs  955M     0  955M   0% /dev
tmpfs                     tmpfs     975M     0  975M   0% /dev/shm
tmpfs                     tmpfs     975M  8.8M  966M   1% /run
tmpfs                     tmpfs     975M     0  975M   0% /sys/fs/cgroup
/dev/mapper/cs-root       xfs        66G  2.2G   63G   4% /
/dev/mapper/cs-home       xfs        32G  260M   32G   1% /home
/dev/sda1                 xfs      1014M  176M  839M  18% /boot
tmpfs                     tmpfs     195M     0  195M   0% /run/user/0
192.168.222.250:/tushanbu nfs4       66G  2.2G   63G   4% /hai
//查看
//永久挂载
[root@xbz ~]# vim /etc/fstab 


挂载来源(服务端的ip 加挂载目录) 客户端的本地挂载目录 格式
因为是虚拟挂载所以在defaults参数后面接,_netdev(如果没有写下次开机可能会卡住) 不检查 不备份

[root@xbz ~]# mount -a
[root@xbz ~]# df -Th
Filesystem                Type      Size  Used Avail Use% Mounted on
devtmpfs                  devtmpfs  955M     0  955M   0% /dev
tmpfs                     tmpfs     975M     0  975M   0% /dev/shm
tmpfs                     tmpfs     975M  8.8M  966M   1% /run
tmpfs                     tmpfs     975M     0  975M   0% /sys/fs/cgroup
/dev/mapper/cs-root       xfs        66G  2.2G   63G   4% /
/dev/mapper/cs-home       xfs        32G  260M   32G   1% /home
/dev/sda1                 xfs      1014M  176M  839M  18% /boot
tmpfs                     tmpfs     195M     0  195M   0% /run/user/0
192.168.222.250:/tushanbu nfs4       66G  2.2G   63G   4% /hai

默认情况下,当客户端访问NFS服务器时,若远程访问的用户是root用户,则NFS服务器会将其映射成一个本地的匿名用户(该用户为nfs nobody),并将其所属的用户组也映射成匿名用户组(该用户组也为nfs nobody),如此有助于提高系统的安全性。
vim /etc/exports
/tushanbu 192.168.222.251(rw) //要共享的目录加允许访问的ip加可读写权限
/tushanbu 192.168.222.251(ro) //要共享的目录加允许访问的ip加只读权限

1.设置了只读权限
在服务端操作:
[root@lnh ~]# ll /tushanbu/ -d
drwxr-xr-x. 2 root root 6 Jul 20 12:41 /tushanbu/
在客户端操作:
[root@xbz ~]# ll /hai/ -d
drwxr-xr-x. 2 root root 6 Jul 20 12:41 /hai/
[root@xbz ~]# cd /hai/
[root@xbz hai]# touch 123
touch: cannot touch '123': Permission denied
//这个时候我们是不可以进行创建目录或者文件的
2.设置了可读写权限
在服务端操作
[root@lnh ~]# chown -R nobody /tushanbu/
[root@lnh ~]# ll /tushanbu/ -d
drwxr-xr-x. 3 nobody root 28 Jul 20 14:10 /tushanbu/
在客户端操作
[root@xbz ~]# ll /hai -d
drwxr-xr-x. 3 nobody root 28 Jul 20 14:10 /hai
[root@xbz ~]# cd /hai/
[root@xbz hai]# touch 123
[root@xbz hai]# mkdir 222
[root@xbz hai]# ll
total 0
-rw-r--r--. 1 nobody nobody 0 Jul 20 14:10 123
drwxr-xr-x. 2 nobody nobody 6 Jul 20 14:10 222

因为我们的来源挂载点目录是属于root的,在我们客户端本地目录挂载点上面挂载后,在这个本地目录里面是没有办法立刻进行创建文件或者目录的,这个时候我们要交来源挂载点目录在root用户下将它的属组换成nobady就相当于没有属组,也就相当于给予了权限,然后此时我们在客户端的本地目录挂载点里面的目录这里才可以进行创建文件或者目录。还有一种方法就是直接给来源挂载点目录赋予目录的最高权限,这样子在客户端本地目录挂载点目录这里也可以进行创建文件或者目录,不过这样子没有安全性,不建议使用。

服务端:
[root@lnh ~]# chmod 777 /tushanbu/
[root@lnh ~]# ll -d /tushanbu/
drwxrwxrwx. 2 root root 6 Jul 20 20:32 /tushanbu/
[root@lnh ~]# systemctl restart nfs-server.service rpcbind.service 
[root@xbz hai]# touch 123
客户端:
touch: cannot touch '123': Read-only file system
[root@xbz hai]# cd
[root@xbz ~]# systemctl restart nfs-server.service rpcbind.service 
[root@xbz ~]# cd /hai/
[root@xbz hai]# touch 123
[root@xbz hai]# ll
total 0
-rw-r--r--. 1 nobody nobody 0 Jul 20 20:45 123
//赋予777最高权限这样子不安全不建议使用
[root@lnh ~]# cat /var/lib/nfs/etab 
/tushanbu	192.168.222.251(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,no_all_squash)
[root@lnh ~]# id 65534
uid=65534(nobody) gid=65534(nobody) groups=65534(nobody)
//查看访问共享目录的权限,不管版本咋改都可以在这个里面进行查看。
[root@lnh ~]# exportfs -v
/tushanbu     	192.168.222.251(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
//查看其默认权限

相关内容

    暂无相关文章