前言:
上次学习了SUN的NFS服务,今天学习SUN的另一个作品NIS服务。Network Information Service(NIS)原名叫做Sun Yellow Pages,也就是YP(黄页),所以NIS服务的配置文件都是YP开头,也不难理解了。
(1)NIS服务能提供什么功能?与windows server操作系统中的AD比较如何?
用过windows server 2008/2003/2000的都知道AD,NIS的作用就像AD,进行用户账号的集中管理,NIS提供用户的账号、密码、UID、GID、家目录、shell 等。在客户机登录时输入的用户账号到NIS服务器上进行认证,本地不需要具有该用户账号信息。
但是我觉的NIS没有像AD那样使用方便,AD还能管理计算机,但NIS不能。另外还一有个缺点是:用户登录后,在本地没有家目录,此时需要结合NFS服务完成这个功能。NIS需要在服务器端与客户端都进行配置,AD不需要在客户端进行配置。windows server中可以配置多台域控制器,NIS也可以配置成主从结构。
(2)NIS是基于什么协议的服务?
NIS与NFS一样都是基于RPC协议。
(3)在ubuntu server 10.4中需要的软件包?
NIS在ubuntu 中在服务器与客户端需要的软件包都是nis,portmap。
(4)使用NIS服务要准备那些东西?
- 基本的用户账号管理,会配置NFS,知道RPC的作用,
- 还要提前想好一个NIS的域名,这个域名与NDS的域名不同,服务器端与客户端安装NIS时要用到这个NIS域名。
- NIS服务器最好采用固定IP。
- 有DNS服务器的,要设置好NIS客户端能解析到NIS服务器;没有DNS的,要配置好客户端的/etc/hosts文件,使用客户端能解析到NIS服务器。
- 是否需要配置主从NIS服务器。
配置一实例:
配置一台NIS服务器建立用户账号admin04,要求在客户端这账号能够登录,并同时挂载上自己的家目录,有相应的权限,可以读写文件。
NIS服务器配置:
(1)安装NIS
#sudo apt-get install nis portmap
如果这台机器是做为NIS主服务器,那么就创建一个NIS域名,如果做为从NIS服务器或客户端,则输入一个存在的NIS域名。这里我写一个testlab作为NIS域名。
完成后,会在/etc下新增yp.conf,ypserver.conf,ypserv.securenets三个文件
(2)配置/etc/default/nis
这里只配置一台主NIS服务器
(2)配置/etc/yp.conf,增加以下内容。
domain,server都是关键字。
testlab就是NIS域名,如果不记得了或要修改,可以用#nisdomainname完成查询或修改
ubuntulab就是NIS服务器的主机名
(3)初始化数据库
#sudo /usr/lib/yp/ypinit –m
因为这是一台主NIS服务器所以用带-m的参数,初始化NIS服务的数据库。
#sudo /etc/init.d/nis restart
重启NIS服务。
到此NIS服务器就配置完了,此时能看到在/var/yp下有这么一些文件
其中Makefile就是NIS数据库文件
testlab就是以”NIS域名”为名的目录,内容就是一些相关的配置文件
(4)现在把/home/admin04用NFS共享出来,具体NFS配置,在这不再说了
#sudo vim /etc/exports
1003为admin04的UID,GID。
NIS客户端配置:
(1)安装NIS软件包
#sudo apt-get install nis portmap
在此过程中输入与NIS服务器端相同的NIS域名
(2)/etc/yp.conf配置,新增以下内容
192.168.2.87是NIS服务器的IP地址
(3)修改/etc/passwd,/etc/group,/etc/shadow,依次增加以下内容
到此NIS客户端也就配置完了。
(4)测试,通常用yptest,ypwhich,ypcat
yptest:测试 yp 的设定内容、数据库内容等等所有 NIS 相关的资料测试;
#yptest
看到test 9的测试内容为图中所示,则表示成功。为什么会出现test 3所示的警告信息,是因为在/var/yp/Makefile中默认的设置为
也就是不传送nobody这个账号。在ubuntu中nobody的UID,GID都为65534,如果是想传送并消除test 3的警告,则需要在NIS服务器端更改成
设置成“0”就是传送
重启动NIS服务
再次使用yptest,就会看到
就会看nobody也传送过来了,不会出现test 3 的错误了。
ypwhich:测试 NIS Client 与 Server 之间沟通的数据库 (database) 到底是哪几个档案;
#ypwhich
会显示NIS服务器的主机名
#ypwhich –x
ypcat:主要在取得 NIS Server 上面的使用者密码信息
#ypcat passwd.byname
也可以用geten命令查看
#getent passwd
#getent group
也能看到相应的NIS用户和组
(5)把admin04的家目录开机自动挂载到NIS的客户端
#sudo /home/admin04
#sudo chown admin04:admin04 /etc/admin04
修改/etc/fstab
#sudo vim /etc/fstab
这时admin04用户登录到NIS客户端时,家目录也同时挂载上,否则当admin04登录时,会提示找不到家目录。
*:为什么我不直接把NFS的/home目录共享出来,而只是用户的admin04目录?
因为我发现当在NIS客户端挂载了NFS服务器端分享出来的/home目录后,NIS客户端的本地用户登录后,就没有家目录了。所以要想NIS客户端的本地用户也能正常登录时,就用这方式。
(6)其它问题
以SSH登录不会出现什么提示,但是以桌面方式(ubuntu desktop)登录,会出现以下提示
出现以上信息,那么桌面上就是空白,什么菜单也没有,无法使用。这是因为在NFS端共享出来的家目录权限有问题,我的解决方法是在NFS服务器把admin04的权限修改成775,google一下这个问题也有其它的解决方法。
出现以上信息,只要点"delete”就好了,只是桌面上一些小工具没有,还是可以用的。
结束语:
在这没有实验NIS的主从配置及在客户端更改密码yppasswd,ypchfn,ypchsh;觉的在生产环境中应用NIS不是太灵,相比之下windows server的AD就比较好用,另外一种集中管理的方式LDAP也是可以的;还有一种方式就是利用samba把linux机器配置成域控制器,进行用户的集中管理。文中没有修改的文件(ypserver.conf,ypserv.securenets,/etc/netgroup),都采用默认设置。为了增强portmap安全性,还应配置/etc/hosts.deny,/etc/hosts.allow,/etc/ypserv.securenets文件。
NIS 官方网站:http://www.linux-nis.org/
NIS HOW-TO:http://www.linux-nis.org/nis-howto/HOWTO/index.html
本文转自xcjgutong 51CTO博客,原文链接:http://blog.51cto.com/xuchengji/400864