操作环境:7.8.2003

server IP 192.168.11.19

client  IP 192.168.11.20

NIS环境

NIS所需的软件包

搭建NIS:

服务器端

centos7部署nifi集群 centos7 nis_客户端

[root@NIS-server ~]# yum -y install ypserv        #安装ypserv服务相关的包

centos7部署nifi集群 centos7 nis_客户端_02

[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这个主机名,直接声明成二级域名也行。

centos7部署nifi集群 centos7 nis_客户端_03

[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服务后加载数据库

centos7部署nifi集群 centos7 nis_centos_04

[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状态

centos7部署nifi集群 centos7 nis_centos_05

[root@NIS-server /]# /usr/lib64/yp/ypinit -m       #开启数据库
ctrl+d  # 确认     
y       #同意

客户端

centos7部署nifi集群 centos7 nis_linux_06

[root@NIS-client ~]# yum -y install ypbind         #装包,ypbind
[root@NIS-client ~]# authconfig-tui          #利用authconfig-tui进入图形化界面

验证配置、使用nis

centos7部署nifi集群 centos7 nis_centos_07

标明nis域

centos7部署nifi集群 centos7 nis_linux_08

验证测试:

客户端本地并没有user1这个用户,但是id一下却能查询出来uid、gid等信息,这是因为NFS环境下的客户端查询用户的方式是

1.NIS client 若有登入需求时,会先查询其本的 /etc/passwd, /etc/shadow 等档案; 

2.若在 NIS Client 本机找不到相关的账号数据,才开始向整个 NIS 网域的主机广播查询. 

centos7部署nifi集群 centos7 nis_linux_09

[root@NIS-client ~]# id user1            #显示用户的ID,以及所属群组的ID
uid=1000(user1) gid=1000(user1) groups=1000(user1)

客户端切换进NIS域用户,不能正常显示是因为没有服务器的这三个隐藏文件

centos7部署nifi集群 centos7 nis_centos_10

[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

centos7部署nifi集群 centos7 nis_centos7部署nifi集群_11

解决:

使用NFS将服务端的nishome目录共享出去,在客户端将NFS的服务端共享的目录挂载到本地即可,这里我采用自动挂载

  1. 服务端开启NFS,并共享/nishome目录
  2. 客户端安装autofs包,使用通配符的方式,将服务端的nishome下的用户都挂载到客户端

服务端的NFS服务的配置

centos7部署nifi集群 centos7 nis_centos_12

[root@NIS-server ~]# systemctl start nfs           #开启nfs服务

[root@NIS-server ~]# systemctl status nfs          #查看nfs状态

centos7部署nifi集群 centos7 nis_linux_13

[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),可实现开机自动挂载)

centos7部署nifi集群 centos7 nis_centos_14

[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

centos7部署nifi集群 centos7 nis_客户端_15

centos7部署nifi集群 centos7 nis_centos7部署nifi集群_16

centos7部署nifi集群 centos7 nis_centos7部署nifi集群_17

[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服务的搭建