服务器端配置
配置文件位置:/etc/exports
配置格式:
/share1 10.32.0.0/24(rw)
# /share1 Server上的共享目录
#10.32.0.0/24 访问共享目录的地址
#(rw) 权限
设置访问共享目录地址的方法:
* //代表所属有用户
192.168.1.0/24 //这个网段的主机
192.168.1.1/32 //仅这个主机
*.lab.example.com //域中的用户
#hosts的文件添加IP与域的对应关系
vim /etc/hosts
192.168.1.1 NfsServer.lab.example.com
192.168.1.2 NfsClient.lab.example.com
客户端挂载查看
查看NFS_Server的共享目录
showmount -e Server_IP
#
#示例:NFS_Server:10.32.0.1
#
#Client端查看:showmount -e 10.32.0.1
客户端挂载NFS_Server端的共享文件
1. 临时挂载
#本地提前创建一个目录用于挂载NFS的共享目录
mkdir /mnt/share
#临时挂载 10.32.0.1 服务器上的 “/share1” 目录,挂载到本地 “/mnt/share” 目录
mount -t nfs 10.32.0.1:/share1 /mnt/share
2. 永久挂载
#永久挂载 10.32.0.1 服务器上的 “/share1” 目录,挂载到本地 “/mnt/share” 目录
vim /etc/fstab
192.168.25.128:/share1 /mnt/share nfs defaults 0 0
#进行测试,是否正确
mount -a
#没有出错,说明挂载配置成功
客户端向NFS_Server的共享目录写数据过程
1. Client:向共享目录的挂载点写数据的时候,会带上用户的UID。
2. Server:首先对比UID,对于这个共享目录是否有读写的权限
3. 共享目录导出时,是否具有rw权限。
#示例1:
#Server端:/etc/exports 文件
vim /etc/eports
/share1 192.168.1.0/24 (rw)
#Server端:/share1 目录的属性
ll -ld /share1
drwxr-xr-x 2 root root 6 Feb 21 14:44 /share1
#Server端:存在用户user1的信息
id user1
uid=1004(user1) gid=1004(user1) groups=1004(user1)
#Client端:挂载share1共享目录后写入文件
#Client端:存在用户user1的信息
id user1
uid=1004(user1) gid=1004(user1) groups=1004(user1)
#Client端 可以访问 文件
#Client端 不能写入 文件
#设置ACL权限列表,针对user1进行设置
setfacl -m u:1004:rwx /share1
#Client端 既可以访问 又可以 写入 文件
说明:
Server端的/etc/exports文件将 权限“rw” 改为“ro”。即使设置了ACL仍然无法写入文件。
修改Server的配置文件,如何快速应用
#快速应用配置文件信息,不需要重启服务
exportfs -rv
Root用户特性
root用户进行写操作,不是真的root用户,而是使用nfsnobody进行替换
#Server查看nfsnobody的用户信息
id nfsnobody
uid=65534(nfsnobody) gid=65534(nfsnobody) groups=65534(nfsnobody)
#Server上设置nfsnobody的ACL权限列表
setfacl -m u:65534:rwx /share1
root用户进行操作时,不进行替换
#禁止root的 uid及gid 的替换
#Server端配置
vim /etc/exports
/share1 10.32.1.0/24(rw,no_root_squash)
所有用户进行替换
#所有用户 进行 uid及gid 的替换
#Server端配置:
vim /etc/exports
/share1 10.32.1.0/24(rw,all_squash)
自定义替换的用户和组
#Server端存在用户user2
id user2
uid=1005(user2) gid=1005(user2) groups=1005(user2)
#Server端配置:
vim /etc/exports
/share1 10.32.1.0/24(rw,all_squash,anonuid=1005,anongid=1005)
#设置user2的用户ACL权限列表
setfacl -m u:1007:rwx /share1
防火墙放行NFS
NFS端口不固定
NFS在启动时,向rpfbind服务区注册端口,而每次启动注册的端口会不一样。
rpcbind服务的端口:111/tcp
#Server端防火墙配置:
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=mountd
firewall-cmd --reload
AUTOFS配置
自动根据规则将远程服务器的共享目录进行挂载。当不使用的时候会自动的卸载
原理:
1. 在Client端配置
2. 监听一个目录“/mnt/”,当该目录下的子目录/mnt/share1,被使用时,会根据规则,挂载到远程服务器相应的共享目录
配置监听目录
#配置监听文件
vim /etc/auto.master
/mnt /etc/auto.nfs
#/mnt 监听目录
#/etc/auto.nfs 规则文件
配置规则文件
cp /etc/auto.misc /etc/auto.nfs
vim /etc/auto.nfs
share -fstype=nfs 10.32.1.1:/share1
#share Client的监听目录
#fstype 挂载的文件类型
#10.32.1.1:/share1 Server的挂载点
autofs的串联解释
#首先:配置主要在Client端
#文件的目录层级:/mnt/share
#监听文件:设置服务监听的目录
vim /etc/auto.master
/mnt /etc/auto.nfs
vim /etc/auto.nfs
share -fstype=nfs 10.32.1.1:/share1
#注释:
# 服务会一直监听/mnt目录
# 当Client使用/mnt目录下的子目录share时,会自动调用/etc/auto.nfs的规则文件
# 而/etc/auto.nfs规则文件指定:将Server的/share1目录挂载到Client的/mnt/share目录
---个人笔记,存档,细节逐步添加