前两篇文章我们配置好了LDAP服务端和LDAP客户端。这篇文章将讲述从LDAP客户机服务器上挂载NFS服务器上共享的目录。
1、LDAP服务器上NFS共享配置
1.1 NFS服务也可以单独搭建在另外一台服务器。由于我使用的是虚拟机,所以这里我把NFS服务也部属在LDAP服务器上。
[root@server0 ~]# ls /home/guests/ --查看服务端LDAP用户目录
testldapuser1 testldapuser2 testldapuser4 testldapuser6 testldapuser8
testldapuser10 testldapuser3 testldapuser5 testldapuser7 testldapuser9
[root@server0 ~]# yum install nfs-utils --安装NFS软件包
1.2 添加防火墙策略:
[root@server0 ~]# firewall-cmd --permanent --add-service=nfs
[root@server0 ~]# firewall-cmd --permanent --add-service=rpc-bind
[root@server0 ~]# firewall-cmd --permanent --add-service=mountd
[root@server0 ~]# firewall-cmd --reload
1.3 修改 exports 配置文件:
[root@server0 ~]# vi /etc/exports
/home/guests 192.168.100.0/24(rw)
1.4 exportfs 命令:
[root@server0 ~]# exportfs -rv --使配置文件生效
exporting 192.168.100.0/24:/home/guests
[root@server0 ~]# exportfs -v
/home/guests 192.168.100.0/24(rw,sync,wdelay,hide,no_subtree_check,sec=sys,secure,root_squash,no_all_squash)
1.5 启动相关服务:
[root@server0 ~]# systemctl enable rpcbind
[root@server0 ~]# systemctl restart rpcbind
[root@server0 ~]# systemctl enable nfs
[root@server0 ~]# systemctl restart nfs
[root@server0 ~]# systemctl status nfs
到此,服务器端就配置完成了。
2、客户端配置
2.1 查看服务端共享:
[root@desktop1 ~]# showmount -e 192.168.100.200 --查看服务端共享,正常显示如下,否则防火墙策略没配置对或服务未正常启动。
Export list for 192.168.100.200:
/home/guests 192.168.100.0/24
2.2 安装必须的软件包:
[root@desktop1 ~]# yum install autofs nfs-utils -y
2.3 修改主配置文件:
[root@desktop1 ~]# vi /etc/auto.master
/home/guests /etc/auto.guests --加入这一行
说明:
/home/guests --指定需要把远程服务器上的目录挂载到本地客户端的哪个目录下。
/etc/auto.guests ---指定挂载时用到的子配置文件名,这是一个映射文件,名字可以随便取,路径也可以随便。
启动autofs.service的时候,会自动创建/home/guests目录。并且autofs服务会一直监控这个目录,只要有用户访问这个目录时,它就会触发 /etc/auto.guests 配置文件。然后根据这个配置文件的内容为用户挂载指定目录。
[root@desktop1 home]# ls
rusky
[root@desktop1 home]# systemctl start autofs.service
[root@desktop1 home]# ls
guests rusky
[root@desktop1 home]# systemctl stop autofs.service --停止autofs服务,guests目录就会自动卸载。
[root@desktop1 home]# ls
rusky
2.4 创建子配置文件:
[root@desktop1 ~]# vi /etc/auto.guests
lxjtest -rw,nfs4 192.168.100.200:/home/guests/lxjtest
说明:
lxjtest:关键字,可随便取
-rw,nfs4: 指定参数,读写、nfs4方式
192.168.100.200:/home/guests/lxjtest :NFS服务器上的目录
意思是说,只要ls 或cd 访问lxjtest,回车后,会自动把NFS服务器上指定的目录挂载到本地,但是,前提要服务器端得有lxjtest这个目录,否则没意义。
我们先看一下服务端 lxjtest 目录,里面创建了一个测试文件lxjtestfile:
[root@server0 ~]# cd /home/guests/
[root@server0 guests]# ls
lxjtest testldapuser1 testldapuser10 testldapuser2 testldapuser3 testldapuser4 testldapuser5 testldapuser6 testldapuser7 testldapuser8 testldapuser9
[root@server0 guests]# ls lxjtest/
lxjtestfile
在客户端测试:
[root@desktop1 guests]# cd lxjtest/ --只要访问关键字lxjtest时,autofs服务就会自动把“192.168.100.200:/home/guests/lxjtest”这个目录挂载过来。
[root@desktop1 lxjtest]# ls
lxjtestfile
这是一种访问型的触发方式。如果用户长时间不使用该目录,默认是五分钟后会自动把该目录卸载。
但是,在LDAP服务上,我们有N多个用户目录(/home/guests/testldapuser*),都需要使用这种访问型的触发方式来挂载指定目录,显然,上边的配置文件是无法满足我们的要求的,因为它只能挂载一个目录过来。所以我们修改配置文件如下:
[root@desktop1 home]# vi /etc/auto.guests
* -rw,nfs4 192.168.100.200:/home/guests/&
* 表示客户端用户访问 /home/guests 目录下的任意内容。比如,我执行命令:ls /home/guests/abcderfg,那么*号就表示abcdefg
& 表示服务器端”192.168.100.200:/home/guests/“目录下的abcderfg。可以这么理解,这两个符号表示不同服务器上的名称一样的文件夹。
2.5 设置开机自启动并重启服务
[root@desktop1 ~]# systemctl enable autofs
[root@desktop1 ~]# systemctl restart autofs
autofs 的优势:
1、设置开机不一定要挂载的目录,当用的时候(访问型的触发方式)才实现自动挂载。
2、如果用户不使用自动挂载的目录,一段时间后,会自动卸载。
测试:
[root@desktop1 home]# systemctl stop autofs
[root@desktop1 home]# ls
rusky
[root@desktop1 home]# systemctl start autofs --启动后,自动创建guests目录
[root@desktop1 home]# ls
guests rusky
[root@desktop1 home]# cd guests/
[root@desktop1 guests]# ls
[root@desktop1 guests]# su - testldapuser5 ---可以切换到LDAP用户,切换的时候会自动挂载NFS服务器上的用户目录
[testldapuser5@desktop1 ~]$ ls
[testldapuser5@desktop1 ~]$ pwd
/home/guests/testldapuser5
[testldapuser5@desktop1 ~]$ su -
Password:
Last login: Thu Jan 18 11:21:34 CST 2018 from 192.168.100.1 on pts/1
[root@desktop1 ~]# cd /home/guests/
[root@desktop1 guests]# ls testldapuser2
ls: cannot open directory testldapuser2: Permission denied
[root@desktop1 guests]# ls ---ls 访问 testldapuser2 时,也会自动创建testldapuser2目录
testldapuser2 testldapuser5
[root@desktop1 guests]# su - testldapuser2 --切换用户,查看NFS服务器上testldapuser2目录下的文件。
Last login: Wed Jan 17 18:52:02 CST 2018 on pts/0
[testldapuser2@desktop1 ~]$ ls
ldapuser2file
[testldapuser2@desktop1 ~]$