NIS/ldap
网络信息服务(Network Information Service)是集中控制几个系统管理数据库的网络用品。NIS简化了UNIX和LINUX桌面客户的管理工作,客户端利用它可以使用中心服务器的管理文件。桌面系统的用户无需建立他们自己的/etc/passwd,他们只简单的使用维护在NIS服务器的文件即可。
用户只需要在nis服务器上面创建,客户端加入nis域,直接可以使用Nis域上的用户来登录客户端。
一、概述:
NIS Server
Nis Master 先将帐号密码相关文件制作成数据库文件;
服务器端文件名 档案内容
/etc/passwd 提供用户账号、UID、GID、家目录所在、Shell 等等
/etc/group 提供群组数据以及 GID 的对应,还有该群组的加入人员
/etc/hosts 主机名与 IP 的对应,常用于 private IP 的主机名对应
/etc/services 每一种服务 (daemons) 所对应的端口号 (port number)
/etc/protocols 基础的 TCP/IP 封包协定,如 TCP, UDP, ICMP 等
/etc/rpc 每种 RPC 服务器所对应的程序号码
/var/yp/ypservers NIS 服务器所提供的数据库
Nis Client
1.NIS client 若有登入需求时,会先查询其本机的 /etc/passwd, /etc/shadow 等档案;
2.若在 NIS Client 本机找不到相关的账号数据,才开始向整个 NIS 网域的主机广播查询.
1.1:所需软件
1. yp-tools :提供 NIS 相关的查寻指令功能
2. ypbind :提供 NIS Client 端的设定软件
3. ypserv :提供 NIS Server 端的设定软件
4. portmap :这是 RPC必须的软件!
2、相关端口:portmap :111,因为NIS、NFS 都是依赖于portmap服务
6.0/7.0 版本用rpcbind取代portmap服务
3.
****配置文件****
/etc/ypserv.conf 这是最主要的 ypserv 软件所提供的配置文件,可以规范 NIS 客户端是否可
登入的权限。
/etc/hosts 由于 NIS server/client 会用到网络主机名与 IP 的对应,因此这个主机名对应
档就显的相当重要!每一部主机名与 IP 都需要记录才行!
/etc/netgroup 提供组数据及GID的对应。/etc/sysconfig/network可以在这个档案内指定
NIS 的网域 (nisdomainname)。
/var/yp/Makefile 这就是与建立数据库有关的动作配置文件;
**主要服务方面**
/usr/sbin/ypserv 就是 NIS 服务器的主要提供服务
/usr/sbin/rpc.ypxfrd 用于Master/Slave主机之间的传输数据库的服务。
/usr/sbin/rpc.yppasswd 提供额外的 NIS 客户端之用户密码修改服务, 通过这个服务, NIS 客户端
可以直接修改在 NIS 服务器上的密码。相关的使用程序则是 yppasswd 指
令;(修改密码时,NIS客户端与 NIS服务器端之前通过这个服务来通信)
数据库相关指令
/usr/lib64/yp/ypinit/usr/lib/ypyinit 建立数据库的指令,非常常用 (在 32 位的系统下,文件
名则是 /usr/lib/yp/ypinit );
/usr/bin/yppasswd 与 NIS 客户端有关,主要在让用户修改服务器上的密码。
/usr/sbin/yppushmaster 主机将数据库直接送至 slave 的指令;
/usr/lib/yp/ypxfr 传送数据库的指令,在该目录下尚有 ypxfr_1perday,
ypxfr_1perhour, ypxfr_2perday 等等。
案例介绍:
nis域名:www.example.com
指定所有主机为同一个网段:
二、服务端的的配置:
1、安装ypserv服务相关的包。
Yum list |grep ypserv
Yum install ypserv
2、建立一个Nis专用用户目录文件夹:
mkdir /nishome
3、建立一个NIS用户:(可以使用该方式建立多个用户)
useradd -d /nishome/user1 –u 1000 user1
设定user1用户的密码
4、编辑/etc/sysconfig/network为NIS服务器指定NIS网域名:
[[email protected] Server]# vim /etc/sysconfig/network
NISDOMAIN=www.example.com
5、运行:nisdomainname www.example.com //这里的域名和上面=号后面的一样!加入域www.example.com
[[email protected] Server]# nisdomainname
(none)
[[email protected] Server]# nisdomainname www.example.com
[[email protected] Server]# nisdomainname
www.example.com
6、在linux下,如需添加随系统启动而自动运行的服务编辑/etc/rc.d/rc.local,加入www.example.com域;
[[email protected] Server]# echo “/bin/nisdomainname www.example.com” >> /etc/rc.local
7、启动ypserv服务:
[[email protected] Server]#systemctl restart ypserv.service
查看ypserv服务状态:systemctl status ypserv.service
8、生成NIS 用户数据库:/usr/lib64/yp/ypinit -m(该服务器上的所有用户名都将用作客户端身份认证) 注意,每次添加用户之后,都需要重新生成nis数据库
Ypinit NIS数据库安装和构建程序
Vim /var/yp/Makefile
[[email protected] Server]# /usr/lib64/yp/ypinit -m
At this point, we have to construct a list of the hosts which will run NIS servers. localhost.localdomain is in the list of NIS server hosts.
Please coninue to addthe names for the other hosts, one per line. When you are done with thelist, type a .
next host to add: localhost.localdomain ----服务器hostname,只有一个服务器的话,就按下面的ctrl+d ,如果有多个服务器,接着输入
next host to add: //这里直接按Ctrl+D
备注:提示输入NIS服务器主机名,有多个可以输入多个,按Y确认。
配置完以上命令后在/var/yp下检查有没有生成一个NIS域名命名的目录,这是NIS用户数据库,如果没有则删除该目录下的’”(none)”目录,再重新生成数据库。
8、重启相关服务:
systemctl restart ypserv.service
9、使用NFS共享NIS用户家目录:
Vim /etc/exports加入内容:
/nishome *(rw)
Systemctl restart nfs.service
Systemctl enable nfs.service
二、客户端的配置:
关闭selinux;
客户端加入NIS域: yp-tools ypbind
输入setup --该命令在图形化界面的终端上面执行
选择:启用NIS支持,点击“配置NIS”;输入NIS域,及NIS服务器Ip地址
/etc/init.d/portmap restart 注意6.0、7.0 版本上没有portmap服务,服务名称改变为rpcbind
Systemctl restart portmap
设置客户端机器上的自动挂载
安装自动挂载服务:yum install autofs
编辑控制文件[[email protected] ~]# vi /etc/auto.master
/nishome /etc/auto.misc
配置配置文件
[[email protected] ~]# vi /etc/auto.misc
-
-fstype=nfs 192.168.10.40:/nishome/&
适合于所有nis用户自动挂载家目录
nis1 -fstype=nfs 192.168.10.40:/nishome/nis1
只适合nis1用户自动挂载家目录
重启服务
[[email protected] ~]#systemctl restart autofs
Nis服务器上面,新建立的用户,如果需要客户端验证访问,那么需要在服务器端重新生成nis数据库,然后重启ypserv服务。
测试:
[[email protected] ~]# su - user1
上一次登录:一 11月 11 22:08:03 CST 2019pts/1 上
[[email protected] ~]$