- 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.confNIS往往需要和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) |