NIS(Network Information Service),互联网信息服务,SUN公司1985开发的一种目录服务技术,以前叫做YP(Yellow Page,黄页服务,类似与提供完整联系方式的手册)简而言之就是一种网络信息集中验证方式,功能类似于microsoft的Active Directory,在服务器上存储网络中所有登录账户信息,客户端本身并不做账户信息存放,登录时需要转向NIS服务器上进行验证,如果离线,则无法登录。
1992年SUN推出了NIS的安全验证加强版NIS+,在验证方式上更加严格,使用kerberos,hesiod,PAM等验证。
目前使用比较广泛的是LDAP(light directory access protocol),NIS用的比较少。
我自己试用的是NIS(在ubuntu-10.10上使用apt都显示无法找到nis的deb包,好像nis已经被放弃了-_-!)
环境:2台Ubuntu-10.10-desktop-i386-x86系统计算机,1个服务器,1个客户端
服务器ip:192.168.2.2(hdp0)
客户端ip:192.168.2.3(hdp1)
1、(服务器和客户端)都需要安装portmap和nis。安装nis时需要填写nis域名,可以随便写一个,但必须统一。我自己写的nistest
2、(服务器和客户端)修改hosts文件
- vi /etc/hosts
- 192.168.2.2 hdp0
- 192.168.2.3 hdp1
3、(服务器)配置/etc/yp.conf , /etc/default/nis
- vi /etc/yp.conf
- domain nistest server hdp0 //nistest就是安装时填写的域名,hdp0是服务器的hostname
- ypserver 192.168.2.2
- vi /etc/default/nis
- NISSERVER=master
4、(服务器)使用ypinit初始化
- /usr/lib/yp/ypinit -m //ypinit命令没有出现在PATH中
会显示nis域的信息,并会询问是否添加其他nis服务器,有就添,没有就ctrl+D退出。这时会在/var/yp下生成一些信息和数据库文件,都包含服务器本身所有的用户信息(从passwd,group,shadow中提取)。以后使用时,在服务器上生成域内所有允许在客户端登录的用户信息,并用以下命令重建数据库:
- make -C /var/yp
5、(服务器)重新启动portmap和nis这两个daemon
- /etc/init.d/portmap restart
- /etc/init.d/nis restart
6、(客户端)配置/etc/yp.conf , /etc/nsswitch.conf , /etc/passwd , /etc/group , /etc/shadow
- vi /etc/yp.conf
- ypserver 192.168.2.2
- vi /etc/nsswitch.conf
- passwd nis
- group nis
- shadow nis
- echo +:::::: >> /etc/passwd
- echo +::: >> /etc/group
- echo +:::::::: >> /etc/shadow
7、(客户端)重启nis和portmap。
8、(客户端)对NIS的配置情况进行检查。使用getent,ypwhich,yptest,ypcat passwd 等这些命令
9、测试NIS。在服务器上使用useradd -m -s /bin/bash testnis创建用户testnis,使用make -C /var/yp重建用户数据库,重启nis进程。
在客户端上,用 su testnis 命令就可以登录了!
PS:在使用yptest时,结果中yp_match可能会出现warning,意思是nobody用户,这时可以修改/var/yp/Makefile中的NFSNOBODYUID=0、NFSNOBODYGID=0,重建然后重启,就没有warning了。