Ubuntu server10.4下NIS服务的配置

前言:

上次学习了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服务要准备那些东西?

  1. 基本的用户账号管理,会配置NFS,知道RPC的作用,
  2. 还要提前想好一个NIS的域名,这个域名与NDS的域名不同,服务器端与客户端安装NIS时要用到这个NIS域名。
  3. NIS服务器最好采用固定IP。
  4. 有DNS服务器的,要设置好NIS客户端能解析到NIS服务器;没有DNS的,要配置好客户端的/etc/hosts文件,使用客户端能解析到NIS服务器。
  5. 是否需要配置主从NIS服务器。

 

配置一实例:

配置一台NIS服务器建立用户账号admin04,要求在客户端这账号能够登录,并同时挂载上自己的家目录,有相应的权限,可以读写文件。

NIS服务器配置:

(1)安装NIS

#sudo apt-get install nis portmap

nis01

如果这台机器是做为NIS主服务器,那么就创建一个NIS域名,如果做为从NIS服务器或客户端,则输入一个存在的NIS域名。这里我写一个testlab作为NIS域名。

完成后,会在/etc下新增yp.conf,ypserver.conf,ypserv.securenets三个文件

(2)配置/etc/default/nis

nis11

这里只配置一台主NIS服务器

(2)配置/etc/yp.conf,增加以下内容。

nis08

domain,server都是关键字。

testlab就是NIS域名,如果不记得了或要修改,可以用#nisdomainname完成查询或修改

ubuntulab就是NIS服务器的主机名

(3)初始化数据库

#sudo /usr/lib/yp/ypinit –m

nis02

因为这是一台主NIS服务器所以用带-m的参数,初始化NIS服务的数据库。

#sudo /etc/init.d/nis restart

重启NIS服务。

到此NIS服务器就配置完了,此时能看到在/var/yp下有这么一些文件

nis25

其中Makefile就是NIS数据库文件

testlab就是以”NIS域名”为名的目录,内容就是一些相关的配置文件

(4)现在把/home/admin04用NFS共享出来,具体NFS配置,在这不再说了

#sudo vim /etc/exports

nis23

1003为admin04的UID,GID。

 

NIS客户端配置:

(1)安装NIS软件包

#sudo apt-get install nis portmap

在此过程中输入与NIS服务器端相同的NIS域名

(2)/etc/yp.conf配置,新增以下内容

nis12

192.168.2.87是NIS服务器的IP地址

(3)修改/etc/passwd,/etc/group,/etc/shadow,依次增加以下内容

nis13

nis14

nis15

到此NIS客户端也就配置完了。

(4)测试,通常用yptest,ypwhich,ypcat

yptest:测试 yp 的设定内容、数据库内容等等所有 NIS 相关的资料测试;

#yptest

nis17

看到test 9的测试内容为图中所示,则表示成功。为什么会出现test 3所示的警告信息,是因为在/var/yp/Makefile中默认的设置为

nis18

也就是不传送nobody这个账号。在ubuntu中nobody的UID,GID都为65534,如果是想传送并消除test 3的警告,则需要在NIS服务器端更改成

nis19

设置成“0”就是传送

重启动NIS服务

再次使用yptest,就会看到

nis20

就会看nobody也传送过来了,不会出现test 3 的错误了。

ypwhich:测试 NIS Client 与 Server 之间沟通的数据库 (database) 到底是哪几个档案;

#ypwhich

会显示NIS服务器的主机名

#ypwhich –x

nis21

ypcat:主要在取得 NIS Server 上面的使用者密码信息

#ypcat passwd.byname

nis22

也可以用geten命令查看

#getent passwd

#getent group

也能看到相应的NIS用户和组

(5)把admin04的家目录开机自动挂载到NIS的客户端

#sudo /home/admin04

#sudo chown admin04:admin04 /etc/admin04

修改/etc/fstab

#sudo vim /etc/fstab

nis24

这时admin04用户登录到NIS客户端时,家目录也同时挂载上,否则当admin04登录时,会提示找不到家目录。

*:为什么我不直接把NFS的/home目录共享出来,而只是用户的admin04目录?

因为我发现当在NIS客户端挂载了NFS服务器端分享出来的/home目录后,NIS客户端的本地用户登录后,就没有家目录了。所以要想NIS客户端的本地用户也能正常登录时,就用这方式。

(6)其它问题

以SSH登录不会出现什么提示,但是以桌面方式(ubuntu desktop)登录,会出现以下提示

nis04

出现以上信息,那么桌面上就是空白,什么菜单也没有,无法使用。这是因为在NFS端共享出来的家目录权限有问题,我的解决方法是在NFS服务器把admin04的权限修改成775,google一下这个问题也有其它的解决方法。

nis05

出现以上信息,只要点"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

 

From:

http://xuchengji.blog.51cto.com/160472/400864

阅读更多
个人分类: Linux
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭