操作环境:7.8.2003
server IP 192.168.11.19
client IP 192.168.11.20
NIS环境
NIS所需的软件包
搭建NIS:
服务器端
[root@NIS-server ~]# yum -y install ypserv #安装ypserv服务相关的包
[root@NIS-server ~]# mkdir /nishome #建立一个Nis专用用户目录文件夹
[root@NIS-server /]# useradd -d /nishome/user1 user1 #建立多个NIS用户,并为其配置密码
[root@NIS-server /]# useradd -d /nishome/user2 user2
[root@NIS-server /]# echo abc | passwd --stdin user1
Changing password for user user1.
passwd: all authentication tokens updated successfully.
[root@NIS-server /]# echo abc | passwd --stdin user2
Changing password for user user2.
passwd: all authentication tokens updated successfully.
注:编辑/etc/sysconfig/network为NIS服务器指定NIS网域名,,可以不用写www这个主机名,直接声明成二级域名也行。
[root@NIS-server /]# vim /etc/sysconfig/network
[root@NIS-server /]# cat /etc/sysconfig/network
# Created by anaconda
nisdomain=www.example.com
[root@NIS-server /]# nisdomainname www.example.com
[root@NIS-server /]# nisdomainname
www.example.com
注:将服务器上的用户文件加载成数据库文件(该服务器上的所有用户名都将用作客户端身份认证),先关闭防火墙,开启ypserv服务后加载数据库
[root@NIS-server /]# systemctl stop firewalld #关闭防火墙
[root@NIS-server /]# setenforce 0 #关闭selinux防火墙
setenforce: SELinux is disabled
[root@NIS-server /]# systemctl start ypserv.service #开启ypserv服务
[root@NIS-server /]# systemctl status ypserv.service #查看ypserv状态
[root@NIS-server /]# /usr/lib64/yp/ypinit -m #开启数据库
ctrl+d # 确认
y #同意
客户端
[root@NIS-client ~]# yum -y install ypbind #装包,ypbind
[root@NIS-client ~]# authconfig-tui #利用authconfig-tui进入图形化界面
验证配置、使用nis
标明nis域
验证测试:
客户端本地并没有user1这个用户,但是id一下却能查询出来uid、gid等信息,这是因为NFS环境下的客户端查询用户的方式是
1.NIS client 若有登入需求时,会先查询其本的 /etc/passwd, /etc/shadow 等档案;
2.若在 NIS Client 本机找不到相关的账号数据,才开始向整个 NIS 网域的主机广播查询.
[root@NIS-client ~]# id user1 #显示用户的ID,以及所属群组的ID
uid=1000(user1) gid=1000(user1) groups=1000(user1)
客户端切换进NIS域用户,不能正常显示是因为没有服务器的这三个隐藏文件
[root@NIS-client ~]# su - user1 #变更为user1的身份
Last login: Fri Oct 8 13:50:52 CST 2021 on pts/2
su: warning: cannot change directory to /nishome/user1: No such file or directory
-bash-4.2$ whoami
user1
解决:
使用NFS将服务端的nishome目录共享出去,在客户端将NFS的服务端共享的目录挂载到本地即可,这里我采用自动挂载
- 服务端开启NFS,并共享/nishome目录
- 客户端安装autofs包,使用通配符的方式,将服务端的nishome下的用户都挂载到客户端
服务端的NFS服务的配置
[root@NIS-server ~]# systemctl start nfs #开启nfs服务
[root@NIS-server ~]# systemctl status nfs #查看nfs状态
[root@NIS-server ~]# vim /etc/exports #编辑共享目录
[root@NIS-server ~]# cat /etc/exports #查看exports文件
/nishome *(rw,sync,no_subtree_check,no_root_squash)
[root@NIS-server ~]# exportfs -rv #发布共享
exporting *:/nishome
[root@NIS-server ~]# showmount -e 192.168.11.19 #查看指定服务器的共享情况
Export list for 192.168.11.19:
/nishome *
客户端的NFS服务的挂载配置(这里也可以使用nfs或autofs分开来做,若使用nfs服务,需要在client上创建一个和server一样的nis家目录,然后挂载到client上。写入到/etc/rc.local里(注:需要将rc.local权限改为755),可实现开机自动挂载)
[root@NIS-client ~]# yum -y install autofs #装包autofs
[root@NIS-client ~]# systemctl stop firewalld #关闭防火墙
[root@NIS-client ~]# systemctl start autofs #开启autofs服务
[root@NIS-client ~]# vim /etc/auto.master #在autofs的主配置文件中定义挂载点根目录的子配置文件
/nishome /etc/auto.misc
[root@NIS-client ~]# systemctl restart autofs #重启autofs服务
[root@NIS-client ~]# su - user1 #访问server上的user1用户
Last login: Fri Oct 8 14:46:17 CST 2021 on pts/1
[user1@NIS-client ~]$ ls -a #查看user1隐藏文件
. .. .bash_logout .bash_profile .bashrc
以上是nis服务的搭建