[RedHat6.2]NIS服务器的配置
NIS服务器主要用来对用户的账户与密码进行统一管理,它存在的意义:假设公司内部共有20台Linux主机,对于公司内的员工来说,他们可以访问所有的这20台Linux主机,我们假设公司某位成员需要修改密码,为了使能够登录所有的主机,传统的思维就是要分别到这20太Linux主机上执行passwd,这样是非常低效的,对管理人员来说是非常不方便的事情,因此NIS服务就是来解决这个问题的,它的原理是,将所有用户的帐号密码等信息都保存在NIS服务器上,当某位用户登录其中的一台Linux主机时,在进行帐号密码验证时,登录的那台主机会向NIS服务器发送验证请求,如果正确则用户登录成功,反之用户登录不成功。 www.zhishiwu.com
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客户端只需要挂载即可,这里我们暂不介绍,以后待续。。。