Chinaunix首页 | 论坛 | 博客
  • 博客访问: 27317
  • 博文数量: 9
  • 博客积分: 1537
  • 博客等级: 上尉
  • 技术积分: 95
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-18 16:09
文章分类

全部博文(9)

文章存档

2011年(6)

2009年(2)

2008年(1)

我的朋友
最近访客

分类:

2009-05-25 12:28:18

- By Harry

    NIS在大型环境中运用很多,犹如Windows的AD一样,可以方便系统管理。不过与AD不同NIS的管理相对比较疏松,而且牵涉到不同版本的Unix/Linux, 在实际运用中会有很多兼容性的配置问题。于是在这里收集遇到过的各种问题,会不断更新:

1. 认证加密问题

Solaris8/9 默认只支持DES加密。而一般Linux发行版本同时支持DES/MD5,但默认使用MD5。
于是在一个混合的环境中,如果同时拥有各种Unix/Linux系统,就会遇到帐号密码认证的问题。

在以往比较的情况,用Solaris来做NIS Server,那其他版本的Unix/Linux作为NIS client,都不会有问题。
但是如果倒过来,使用Linux作为NIS Server,而Solaris作为NIS Client;那使用NIS帐号进行登录或者修改密码时就会报错,告诉你密码不对。这是因为Linux默认使用MD5加密用户密码,而登录Solaris时,Solaris却用DES加密,于是加密后的密码不匹配。

解决办法:
1) 当然最好还是使用Solaris来做Server,毕竟NIS是SUN搞出来的东西,问题会比较少。而且新的Solaris10已经支持MD5,OpenSolaris好像也都已经支持MD5了。
2) 如果实在要用Linux来做Server,那Solaris最好使用10或者Opensolaris,且需要手工指定以MD5加密;或者在配置Linux的NIS Server时,需修改PAM设置,来强制使用DES加密,但是这种方法感觉不好,会有兼容性问题。具体还没测试过,等有空测试一下再写详细步骤。


2. autofs问题
autofs 经常和NIS配合使用。常见的例子就是自动mount用户home目录。
不过Linux和Solaris自己本地的auto master文件的文件名是不同的:
Linux上使用auto.master
而Solaris上是auto_master

所以在采用不同系统做NIS Server时,要注意文件名。不过只要使用Server上的格式即可,不用担心不同的Client问题。


3. nsswitch.conf

NIS往往需要和nsswitch.conf配合使用。不过在nsswitch.conf里有一个特殊的选项就是"compat"。
这个compat到底是和什么compatible呢?

以下是从Solaris8里man nsswitch.conf的节选。

   compat                   Valid only for passwd and  group;
                              implements   "+"   and  "-".  See
                              Interaction with +/- syntax.

  Interaction with +/- syntax
     Releases prior to SunOS 5.0 did not have  the  name  service
     switch  but  did  allow  the  user  some  policy control. In
     /etc/passwd  one  could  have  entries  of  the  form  +user
     (include  the  specified user from NIS passwd.byname), -user
     (exclude the specified  user)  and  +  (include  everything,
     except  excluded users, from NIS passwd.byname). The desired
     behavior was often  "everything  in  the  file  followed  by
     everything  in NIS", expressed by a solitary + at the end of
     /etc/passwd. The switch provides  an  alternative  for  this
     case  ("passwd:  files nis") that does not require + entries
     in /etc/passwd and /etc/shadow (the latter is a new addition
     to SunOS 5.0, see shadow(4)).

也就是说,如果你的系统是SunOS 5.0之前(目前应该很少了吧),它似乎是不支持nsswitch的,因此你如果想在5.0之后的环境里使用老版本SunOS,你就需要将passwd和group选择为compat,同时在passwd和group文件末尾使用+/-来添加NIS mapping的功能。
另外即使你使用的是5.0之后的版本,但是如果你希望在一些service里(例如passwd,nfs)利用+/-来控制访问权限,你也需要使用compat模式。

说到+/-,往往又会牵涉到netgroup,以后有空写一下关于netgroup的设置,还是非常有用的。


4. netgroup 长度限制

NIS中最常用到的就是帐号管理和autofs. 其实netgroup也是很有用的一个功能。你可以灵活设置各种用户组和机器组,具体内容不在这里介绍。
在这里要提到的是长度限制问题。如果你的环境中用户或机器特别多的话,你的netgroup条目可能会很长,但是netgroup里的每一个entry(组)的内容是有长度限制的,为1024个字符。如果你某一条记录超过了1024个字符,你在make的时候会得到类似的报错:
 
"entry too big, problem storing netgroup"

解决的办法有2个:
1) 不要让你任何一条(组)超过1024个字符。这是句废话
2) 实在要超过,你需要把该组拆分成2个或更多组。
例如你原来有一条记录:
 
unix_servers (host1,,) (host2,,) (host3,,) ....(host200,,) 

总长度如果超过1024,你可以改成这样:
unix_servers1 (host1,,) (host2,,) ....(host99,,)
unix_servers2 (host100,,) (host101,,)....(host200,,)
unix_servers unix_server1 unix_server2


反正只要记住,任何一条都不能超过1024个字符。


-- To be continued

阅读(1313) | 评论(0) | 转发(0) |
0

上一篇:我自己的文档库

下一篇:NIS应用二: Netgroup

给主人留下些什么吧!~~