mkdir -p /data/ldap/{data,conf}
docker run -p 389:389 -p 636:636 --name my-openldap-container --env LDAP_TLS_VERIFY_CLIENT="never" --env LDAP_ORGANISATTON="openldap" --env LDAP_DOMAIN="yht.cn" --env LDAP_APMIN_PASSWORD="123456" -v /data/ldap/data:/var/lib/ldap -v /data/ldap/conf:/etc/ldap/slapd.d --detach osixia/openldap:1.4.0
-p 389:389 # LDAP端口
-p 636:636 # LDAP加密端口
LDAP_TLS_VERIFY_CLIENT="never" # 客户端认证,never代表不需要认证
LDAP_ORGANISATTON="openldap" # 组织名称
LDAP_DOMAIN="yht.cn" # 域名
LDAP_APMIN_PASSWORD="123456" # 超级管理员密码
/data/ldap/data:/var/lib/ldap # 数据库存储目录
/data/ldap/conf:/etc/ldap/slapd.d # 配置文件目录
--detach # 后台运行
osixia/openldap:1.4.0 # 容器镜像版本,不是ldap版本,参考hub.docker.com
docker run -d --privileged -p 808:80 --name ldap_admin --env PHPLDAPADMIN_HTTPS=false --env PHPLDAPADMIN_LDAP_HOSTS=10.4.7.12 --detach osixia/phpldapadmin:0.9.0
PHPLDAPADMIN_HTTPS=false # 关闭https认证
PHPLDAPADMIN_LDAP_HOSTS=10.4.7.12 # 需要连接的ldap服务器地址
--detach # 后台运行
osixia/phpldapadmin:0.9.0 # 容器镜像版本,不是ldapadmin版本,参考hub.docker.com
Login DN: cn=admin,dc=yht,dc=cn # 默认cn为admin,域名为LDAP_DOMAIN="yht.cn",所以dc=yht,dc=cn
Password: admin # 默认密码为admin
注意此种修改密码手段不会修改页面的上密码,会生成一个独立的登陆密码
则后果是会有两个密码:
1、页面默认的admin登陆密码
2、在命令行生成的密码
admin用户的两个密码都可登陆系统,页面默认admin密码则在页面修改
命令行生成新密码不会影响页面密码
docker exec -it my-openldap-container bash
root@b7026522c2d5:/# ldapsearch -H ldapi:// -LLL -Q -Y EXTERNAL -b "cn=config" "(olcRootDN=*)" dn olcRootDN olcRootPW
dn: olcDatabase={0}config,cn=config
olcRootDN: cn=admin,cn=config
olcRootPW: {SSHA}4+ojl/ieZ5XsfCW6wOXYpI9rbnxkOG7j
dn: olcDatabase={1}mdb,cn=config
olcRootDN: cn=admin,dc=yht,dc=cn
olcRootPW: {SSHA}6Ln5rybryWQV7kjl0Nz+cwEFdPjXQhCd
dn # 数据库配置
oldRootDN # 连接LDAP的DN
olcRootPW # 连接LDAP的密码
root@b7026522c2d5:/# slappasswd -s 123
{SSHA}0gnuRDuo3bXyBSpwwO+yfEnm1eT3Oofa
cat > /root/newpasswd.ldif <<‘EOF‘
dn: olcDatabase={1}mdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}0gnuRDuo3bXyBSpwwO+yfEnm1eT3Oofa
EOF
{SSHA}9IMoAE6bt6nwIgDoGFUsQtvyupxubzdp # slappasswd -s 123设置输出的新密码
olcDatabase={1}mdb,cn=config # 更改mdb数据库配置
changetype: modify # 类型为更改
replace: olcRootPW # 更改的字段
root@b7026522c2d5:/# ldapmodify -H ldapi:// -Y EXTERNAL -f /root/newpasswd.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={1}mdb,cn=config"
Login DN: cn=admin,dc=yht,dc=cn
Password: 123
原文:https://blog.51cto.com/yht1990/2633627