三、Linux客户端的配置与测试
1、RHEL 5.5篇
(1)首先确保如下有关LDAP的组件已经安装(32bit版的略有不同)
(2)接下来,编辑/etc/hosts文件,加入adserver.myad.com的IP解析,或者也可以编辑/etc/resolv.conf文件指定namesever为adserver.myad.com的IP地址。
(3)第三步,编辑/etc/nsswitch.conf文件,把passwd,shadow,group的查找指定如下图:
(4)第四步,编辑/etc/openldap/ldap.conf文件,内容如下:
BASE dc=myad,dc=com
(5)第五步,编辑/etc/ldap.conf文件,在编辑之前,首先把自带的备份。新建的/etc/ldap.conf文件内容如下
为了安全起见,不使用Administrator来查询,而是创建一个adbind域用户,并加入Domain User、Account Operator组, 如果不加入Account Operator组,用ldapsearch查询DN无法获取unixUserPassword属性值。
上图中的cn=adbind,cn=users,dc=myad,dc=com是查询用户/组账号的LDAP用户DN。
(6) 关闭nscd服务以避免信息缓存的影响
# chkconfig nscd off
# service nscd stop
(7)验证是否已经成功配置AD域验证UNIX/Linux用户
执行如下命令:
[root@rhcs1 ~]# id helloworld
uid=10000(helloworld) gid=10000(Domain Users) groups=10000(Domain Users)
[root@rhcs1 ~]# getent group | grep 'Domain Users'
Domain Users:*:10000:
如果能够看到账户和组的信息,说明身份能够获取,只是身份信息能够获取,我们还需要测试一下登录。在第一次登录之前,helloworld在当前机器的家目录没有创建,其他没有登录的域用户也是一样,为了在第一次登录时自动创建家目录,需要配置一个文件/etc/pam.d/system-auth,在末尾加上一行:
session optional pam_mkhomedir.so
现在首先测试ssh登录本地来验证ssh服务
接下来测试从本地键盘登录:
2、SLES 11 SP1篇
(1)检查LDAP组件是否已经安装
(2)修改/etc/pam.d/common-session,加入一行
session optional pam_mkhomedir.so
(3)以下配置文件与RHEL 5.5的配置相同
/etc/nsswitch.conf
/etc/ldap.conf
/etc/openldap.conf
(4)SLES 11 SP1的系统服务启动顺序有些问题,缺省先启动dbus再启动network,这会造成一个阻塞:dbus试图去查找passwd,group信息,而这时nss_ldap会因为network服务没有启动而一直不断尝试连接AD服务器,系统启动到dbus就会挂住。所以我们要分别到/etc/init.d/rc3.d和/etc/init.d/rc5.d下把dbus,network服务改成如下顺序:
lrwxrwxrwx 1 root root 10 Jul 20 03:54 S00network -> ../network
lrwxrwxrwx 1 root root 7 Jul 20 03:52 S01dbus -> ../dbus
lrwxrwxrwx 1 root root 7 Jul 20 03:56 K07dbus -> ../dbus
lrwxrwxrwx 1 root root 10 Jul 20 03:56 K08network -> ../network
(5)关闭nscd服务以避免信息缓存的影响
# chkconfig nscd off
# service nscd stop
(6)SLES 10的配置方法同上
(7)SLES 9的配置方法基本和SLES 10/11一样,但要修改两个文件成如下内容:
/etc/pam.d/login
/etc/pam.d/sshd