Ubuntu 安装openldap
    安装参考http://www.unixmen.com/openldap-installation-configuration-ubuntu-12-1013-0413-10-debian-67-2/
    1、# sudo apt-get install slapd ldap-utils
         安装完查看端口以及  执行ldapsearch -x -LLL  
         wjp123
    2、# chown -Rf openldap:openldap /etc/ldap/
         修改用户属主  属组

         sudo dpkg-reconfigure slapd

    3、# cp /usr/share/slapd/slapd.conf  /etc/ldap/slapd.conf
    4、# touch /var/log/slapd.log
        chown openldap.openldap /var/log/slapd.log
        mkdir /var/log/slapd
        chmod 755 /var/log/slapd/
        chown openldap:openldap /var/log/slapd

    root@cldap:~# cat << EOF | ldapadd -x -D cn=admin,dc=wjp,dc=com -W
    > dn: ou=people, dc=wjp, dc=com
    > ou: people
    > objectClass: top
    > objectClass: organizationalUnit
    > EOF
    ldapsearch -x -LLL 如果能正常查出数据则搭建ok。
    如果有xx.ldif 文件可以导入:
    ldapadd -x -W -D "cn=admin,dc=wjp,dc=com" -f people.ldif

    测试slapd.conf
         slaptest -f /etc/ldap/slapd.conf  -F /etc/ldap/slapd.d/
         如果测试失败表面slapd.conf 文件配置错误可以参考这个链接的配置:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=243261
         
    错误解决方法:
        hosts 配置文件需要配置解析127.0.0.1   haha.wjp.com
        hostname:

    5、OpenLdap 索引
    提高用户查询速度 减轻openldap 服务器的压力,提高性能。
        5.1 查询索引: ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config '(olcDatabase={1}hdb)' olcDbIndex

             查询到 数据库没建立索引“dn: olcDatabase={1}hdb,cn=config”
             创建ldif 文件存放索引命令。copy如下内容
                        dn: olcDatabase={1}hdb,cn=config
                        changetype: modify
                        add: olcDbIndex
                        olcDbIndex: sn pres,eq,sub

                        dn: olcDatabase={1}hdb,cn=config
                        changetype: modify
                        add: olcDbIndex
                        olcDbIndex: cn pres,eq,sub

                        dn: olcDatabase={1}hdb,cn=config
                        changetype: modify
                        add: olcDbIndex
                        olcDbIndex: uid pres,eq,sub

                        angetype: modify
                        add: olcDbIndex
                        olcDbIndex: uidNumber pres,eq

                        dn: olcDatabase={1}hdb,cn=config
                        changetype: modify
                        add: olcDbIndex
                        olcDbIndex: gidNumber pres,eq

                        dn: olcDatabase={1}hdb,cn=config
                        changetype: modify
                        add: olcDbIndex
                        olcDbIndex: loginShell pres,eq

                        dn: olcDatabase={1}hdb,cn=config
                        changetype: modify
                        add: olcDbIndex
                        olcDbIndex: ou pres,eq,sub

                        dn: olcDatabase={1}hdb,cn=config
                        changetype: modify
                        add: olcDbIndex
                        olcDbIndex: givenName pres,eq,sub

                        dn: olcDatabase={1}hdb,cn=config
                        changetype: modify
                        add: olcDbIndex
                        olcDbIndex: memberUid pres,eq,sub

                        dn: olcDatabase={1}hdb,cn=config
                        changetype: modify
                        add: olcDbIndex
                        olcDbIndex: nisMapName pres,eq,sub

                        dn: olcDatabase={1}hdb,cn=config
                        changetype: modify
                        add: olcDbIndex
                        olcDbIndex: nisMapEntry pres,eq,sub
            通过ldapmodify 添加索引条目
                ldapmodify -Q -Y EXTERNAL -H ldapi:///  -f  hdb-index.ldif
    访问控制策略:
        通过slpad.conf实现。

    验证客户端
        本实列ubuntu 做为服务器端,centos6.9 作为客户端。
       centos: yum install nss-pam-ldapd pam_ldap -y
                   然后在setup 配置下ldap  就可以了
                   验证是否能获取到用户使用:getent passwd wangjianping


       ubuntu: apt-get  libpam-ldap libnss-ldap
                   sudo apt-get install libpam-ldap nscd
               参考链接: http://wiki.ubuntu.org.cn/LDAPClientAuthentication#Installing_and_configuring_LDAP_authentication.EF.BC.88.E5.AE.89.E8.A3.85.E9.85.8D.E7.BD.AE_LDAP_.E8.AE.A4.E8.AF.81.EF.BC.89
           重新安装LAM  管理客户端链接: http://blog.csdn.net/zfpnuc/article/details/4516327
               $sudo apt-get install ldap-account-manager
    OpenLdap 修改管理员密码
        1、获取加密的方式
            ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b  cn=config olcRootDN=cn=admin,dc=ldapserver,dc=com dn olcRootDN olcRootPW

            此命令可以查到RootDN olcRootPW  其中rootpw 的加密方式为SSHA
        2、使用slappasswd 生成密码
            slappasswd -h {SSHA}

        3、使用ldapmodify 修改条目
            ldapmodify -Y EXTERNAL -H ldapi:///
            进入交互模式按照提示一步步来
            SASL/EXTERNAL authentication started
            SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
            SASL SSF: 0
            dn: olcDatabase={1}hdb,cn=config
            replace: olcRootPW
            olcRootPW: {SSHA}HNBElaZ488HkGgPq7fn7imkX7g14fhLJ
            modifying entry "olcDatabase={1}hdb,cn=config"

        4、重启服务使修改生效
            重启slapd
            /etc/init.d/slapd restart
            至此密码修改成功。
            可以参考这个哦http://blog.csdn.net/developerinit/article/details/76141065