NIS服务器主要用来对用户的账户与密码进行统一管理,它存在的意义:假设公司内部共有20台Linux主机,对于公司内的员工来说,他们可以访问所有的这20台Linux主机,我们假设公司某位成员需要修改密码,为了使能够登录所有的主机,传统的思维就是要分别到这20太Linux主机上执行passwd,这样是非常低效的,对管理人员来说是非常不方便的事情,因此NIS服务就是来解决这个问题的,它的原理是,将所有用户的帐号密码等信息都保存在NIS服务器上,当某位用户登录其中的一台Linux主机时,在进行帐号密码验证时,登录的那台主机会向NIS服务器发送验证请求,如果正确则用户登录成功,反之用户登录不成功。 NIS服务器是将用户的帐号和密码保存在数据库文件中,NIS客户机向它发送请求是需要通过RPC(远程过程调用)这个协议。 所有的NIS客户机都是请求的一台NIS服务器,因此就可以实现一个帐号可以登录所有Linux主机了,而且当用户修改了自己的密码后,它会同步到NIS服务器的数据库文件中,这样就完成了一改多改的效果,对与帐号管理非常方便。 一、NIS服务器端的配置 1. 确定所需软件已经安装 yp-tools:提供NIS相关的查询命令 ypbind: 因为Client与Server是要通信的,因此需要bind ypserv: NIS Server端的设置软件 rpcbind:RPC必须的软件 2. 开始配置NIS服务器 1> 设置NIS服务器的域名 nisdomainname domainname vi /etc/sysconfig/network :NISDOMAIN=domainname 设置域名 :YPSERV_ARGS="-p 1011" 设置NIS每次都在固定的端口,即:1011启动,这是为了将来方便使用iptables直接管理NIS #开机自动设置域名 vi /etc/rc.local /sbin/nisdomainname domainname #添加 2>配置主文件/etc/ypserv.conf [主机名/IP] [NIS域名] [可用数据库名称] [安全限制] 192.168.171.0/255.255.255.0 : * : * : none [安全限制]: 包括没有限制none , 仅能使用小于1024的端口port , 以及拒绝deny 3> 设置主机名与IP的对应 vi /etc/hosts 192.168.171.135 nisserver 192.168.171.136 nisclient01 192.168.171.137 nisclient02 ... 所有主机的IP与主机名的对应都要写在这里面 4> 启动与查看相关的服务 vi /etc/sysconfig/yppasswdd YPPASSWDD_ARGS="--port 1012" 找到该位置,修改成这样 /etc/init.d/ypserv start /etc/init.d/yppasswdd start chkconfig ypserv on # 设置为开机自启动 chkconfig yppasswd on rpcinfo -u localhost ypserv #出现下面的字样,说明是正常的# program 100004 version 1 ready and waiting program 100004 version 2 ready and waiting 5> 处理帐号并建立数据库 useradd -u 1001 testuser01 useradd -u 1002 testuser02 useradd -u 1003 testuser03 echo testuser01 | echo passwd --stdin testuser01 echo testuser02 | echo passwd --stdin testuser02 echo testuser03 | echo passwd --stdin testuser03 #这样就建好了三个用户 testuser01 testuser02 testuser03 密码和用户名相同 -u 代表指定uid #接下来将建立的帐号与密码数据转换成数据库 /usr/lib64/yp/ypinit -m 注意:如果用户密码发生过变化,就需要重新制作数据库,重新启动ypserv 以及yppasswdd. 比如在服务器端添加了用户useradd somebody或者修改了密码passwd somebody 都需要重新创建数据库,即:/usr/lib/yp/ypinit -m 6> 防火墙设置 这里先将NIS服务器的防火墙关了: service iptables stop 二:NIS Client端的设置 1> 设定NIS域名 nisdomainname domainname # 要和NIS Server的域名一样才行 vi /etc/hosts NISDOMAIN=domainname vi /etc/rc.local /sbin/nisdomainname domainname 2> 查看安装所需的安装包 ypbind yp-tools 3> 设置主配置文件: vi /etc/yp.conf domain domainname server 192.168.171.135 #添加 #格式为:domain 你的NIS Server和Client所在的域名 server 你的NIS服务器的IP地址 4> 设置/etc/nsswitch.conf文件,修改验证用户账户和密码时的顺序 找到如下项:
passwd: files
shadow: files
group: files
#hosts: db files ldap nis dns
hosts: files dns
将其修改为:
passwd: files nis
shadow: files nis
group: files nis
#hosts: db files ldap nis dns
hosts: files nis dns
5> 查看客户端portmap进程的启动状况,确定无误后启动其ypbind进程:
service portmap status
portmap (pid 1774) is running...
service ypbind start
Shutting down NIS services: [ OK ]
Binding to the NIS domain: [ OK ]
Listening for an NIS domain server.
将ypbind设置为开机自动启动
chkconfig --level 2345 ypbind on
6> 测试客户端的连接 yptest #会看到测试信息,分辨出是否出了问题 Test 3 Wraing : No such key in map(Map passwd.byname , key nobody)
ypwhich -x 检查数据库 7> 配置客户端在启动时登录到NIS域
vi /etc/sysconfig/authconf #找到并修改以下位置 USENIS=no 改为 USEINS=yes 8> 客户端测试 su - testuser01 Last login: Wed Jul 11 17:59:14 2007 from server Could not chdir to home directory /home/nisuser: No such file or directory-bash-3.00$ 这是正常的,因为我们知道所有用户的信息都是保存在NIS服务器端的,因此找不到用户的目录,这里的解决方法是要用到NFS , 即将/home目录共享,在NIS客户端只需要挂载即可,这里我们暂不介绍,以后待续。。。
|