NIS服务器使用来集中验证用户合法性的服务器,也就是一个用户可以登录到连接到NIS服务器(NIS域)的所有计算机,NIS和Windows的域环境相似


Linux 系统中用户按地域分为

本地用户 远程用户(NIS,LDAP 用的更多,AD windows的)


NIS服务器的用户集中化认证过程

客户端在登陆web服务器,mail服务器,samba服务器,等等服务器的时候,客户端发出用户验证请求给服务器,服务器在将向NIS服务器提出验证用户请求,由NIS提供验证,将验证结果返回给服务器,然后服务器在决定是否对客户端提供服务


部署NIS服务器需要两个程序

ypbind 是寻找NIS服务器的客户端程序,并向服务器提出查询请求

ypserv 是回答客户端查询的服务器进程



配置NIS服务器提前准备

在服务端安装服务端程序

 yum install ypserv


在客户端安装客户端程序

 yum install ypbind

 centos8

  yum install yp-tools

  提供yppasswd等工具等,来提供远程修改用户password等


服务端


用到的配置文件有

 /etc/ypserv.conf : NIS主配置文件,可以控制NIS客户端是否可以访问NIS服务器

 /etc/hosts : 记录主机和IP地址对应关系



开始配置NIS服务器

服务器端


1. 首先先创建一些测试用户

 mkdir /home/nisuser

  创建一个测试用户的文件夹,这样做是为了用户的分类集中管理

 useradd -d /home/nisuser/nisuser1 nisuser1

 echo 123456 | passwd --stdin nisuser1


2. 设置nisdomainname域名

 永久修改 (不能马上生效,重启生效)

  vi /etc/sysconfig/network

   添加 NISDOMAIN=域名

 临时修改 (马上生效,重启会失效)

  nisdomainname 域名


 两种都是用,因为这样可以达到,当前立即生效,重启之后也会生效的目的


3. 配置hosts文件

 vi /etc/hosts

  添加上ip地址和主机名的对应关系,注意是主机名,主机名可以用hostname命令查看

   有dns就不用配置这个,暂时不知道这一步是干嘛的

   有可能就是在等会生成数据库的时候,加入运行NIS服务器主机的时候,因为输入的是域名,所以需要有将域名解析到ip地址的功能


4. 配置主配置文件,设置访问NIS服务器的策略,提高安全性

 vi /etc/ypserv.conf

  Host: 主机ip地址网段和子网掩码    Domain:域 Map:数据库 Security:访问规则(none 不限制,port 只允许连接端口小于1024的主机连接,deny 拒绝访问)

  设置策略的时候记得要遵守格式,可以参考它示例的格式,* 通配符代表所有


5. 建立数据库

 建立之前需要启动ypserv服务,不然在建立的时候会报错

 /usr/lib64/yp/ypinit -m

  首先 会让你输入一个主机名字,这个主机名字就是说 让谁来运行NIS服务器,类似于指定主域,他自动会加入本机的主机名,所以我们不需要在增加了,直接按 ctrl+d 确认即可

  然后按y表示确认,程序就会自动开始创建数据库,创建在了/var/yp/下面,数据库名字是域名,就是NISDOMAINNAME的值

  域一旦修改,就得重新生成域数据库

   修改也就是,用户的修改等等


6. 启动或者重启ypserv服务和yppasswdd服务


7. 设置防火墙规则放行ypserv服务等,设置selinux为警告模式也就是许可模式或者直接关闭



客户端


1. 加入域

 安装ypbind后执行 authconfig-tui

  如果不执行此步直接启动ypbind会启动不成功 【2021/04/20】


2. 重启ypbind


3. 验证

 执行 su 域用户名 或者 ssh

 当用 id 域用户名的时候可以看到与用户的信息,但是passwd文件中是没有该用户信息的


4. 但是我们客户端主机上没有用户主目录,所以切换的时候会提示 ”无法 xxx“



在客户端修改域用户password

执行 yppasswd 命令

 首先输入旧password 然后输入两次新password,即可修改成功


设置客户端自动挂载NIS用户家目录

服务端


1. 安装 nfs-utils(手动)和rpcbind 这两个包默认已经安装

 一般不需要手动去安装

 centos8 似乎需要手动安装


2. 编辑nfs配置文件,配置哪些文件需要共享

 格式为

  共享目录 可访问网段(权限列表)    * 通配符代表所有


3. 重启nfs服务


4. 查看nfs共享目录

 showmount -e serverip

  如果可以看到刚才共享的目录,那么配置成功


客户端

 1. 安装 autofs 和 nfs 的某些包 我直接安装 nfs* 就行了

  yum install autofs

   一般默认也是安装的


 2. 编辑autofs配置文件

  vi /etc/auto.master

   加上一行 格式为

    /挂载点 /权限配置文件


 3. 手动创建刚才的权限配置文件

  *(所有文件夹) -rw 挂载的目录(ServerIP:/Path/&)&符号表示用户名,网络路径中用户名都用 “&”来表示,表示的是当前登录的用户,实现当前登录哪个用户就立即把那个用户的目录挂载过来,其他用户的目录不会取消挂载,但是有时候过了一阵子,他会自动卸载挂载,在你退出和某个用户登录的时候,这个符号可能类似于一个变量,就是当前登录的用户

  这里一定要加上&否则挂载过来文件夹的所属组和所属用户都是root导致登录的用户无法访问

 4. 设置autofs 为开机自启 并重启autofs服务 前面所有的服务如果希望它可以开机自动启动,都可以设置此项

  systemctl enable autofs

  systemctl restart autofs


【2021/04/19 20:17】

在客户端启动ypbind之前,服务端必须先设置好nisdomainname


在客户端开始重启autofs执行自动挂载之前,必须先在服务端重启nfs服务器,也就是要让nfs服务器的共享文件数据库生效,也就是在编辑过nfs共享文件数据库过后,你必须要重启服务,它才能生效,客户端才能挂载