分类: LINUX
2008-04-26 18:16:42
在Linux上,趋向于给每个单独的用户创建一个本地账号,允许他们登陆到该计算机。这很有代表性,因为一个用户不仅需要登陆权限,而且需要访问其他资源的权限,如一个home目录,在每台计算机上创建本地账号时都要处理这些内容。
使用本地账号的问题是这些账号彼此不能保持一致。在不同的计算机上相同的用户名具有不同的用户ID和/或组ID,更麻烦的是在不同的计算机上两个不同的账号共享相同的用户ID和组ID,用户joe在计算机1上的用户ID是1234,组ID是56,用户jane在计算机2上有相同的用户ID 1234和组ID 56。在使用共享资源时有巨大的安全风险。这两个不同的账号有同一个NFS服务器,因此这些用户可以彻底摧毁其他人的文件。
解决这个不一致性问题的方案是使用唯一一个集中的、校验的数据源,你所有的计算机通过访问集中数据源的方式来得到这种信息。 这正好是目录服务所做的事情。两种目录服务大都用于集中校验数据。一种是网络信息服务(NIS,以前被称作黄页或简称yp),一种是轻量级别目录访问协议(LDAP)。
NIS对LDAP
当决定使用哪个目录服务(NIS还是LDAP?)时需要考虑几个事情,如果你的公司已经有一个LDAP服务器,看起来向它里面添加数据非常简单,通常启用的LDAP服务器被用于白页和类似非常轻量级的任务,添加认证任务就给LDAP服务器添加有效负载,因为为每一个单独的用户名、UID、GID等进行检索时,程序需要一一解答,添加一台额外的LDAP服务器专门用于认证通常很有意义,同时,对于大量的不同种类的目录查询,要获得性能调整到良好的程度相当艰难,你需要添加所有必须的LDAP索引定义到你的slapd.conf文件中,以提升常用查询的性能,但是你不应该添加太多的索引定义,这样会使LDAP后端数据库文件非常大,做任何事情都会再次变慢。
LDAP是那些有丢弃UDP数据包问题的网络的最佳选择,因为它使用TCP/IP协议,中继是被内置在网络协议层中的。相反,NIS使用基于UDP的远程过程调用(RPC)。每一个丢弃的数据包导致一个无回答的NIS查询,NIS客户端需要重复这些查询,在你网络上的不同机器不同时间使用netstat –s –u命令来查看你网络遭受的这个问题,通过这个命令,你应该会看到非常少的错误报告。
本文将详细介绍NIS,因为在出现问题时它更容易迁移到LDAP,PADL Software Pty公司提供了一套开源的工具来帮助你完成从NIS数据文件到LDAP的转换(看后面资源),你仍然需要做性能调整,但是,如果你想从LDAP迁移到NIS你得自己写迁移工具。