1. 非容器化方式
非容器化ldap更改管理員密碼
1.1 查看管理員信息
- 命令
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}QkwgTsAVaNGf2gBrbA/3t4ZsMrhQoXjI
dn: olcDatabase={1}mdb,cn=config
olcRootDN: cn=admin,dc=example,dc=org
olcRootPW: {SSHA}j8m5H73mNVPYwJQv8Iz1UvU1uVddKDIJ
如上可見,我們要修改的是第二段的
cn=admin,dc=example,dc=org用戶密碼
1.2 獲取密碼的加密字串
root@9bf3f3854cf8:/# slappasswd -s flzxxxxxxxt
{SSHA}YQUNQLtt3xxxxxxxxxxxxxxxx
1.3 生成密碼修改文件
cat > /root/newpasswd.ldif <<"EOF"
dn: olcDatabase={1}mdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}YQUNQLtt3xxxxxxxxxxxxxxxx
EOF
該文件用于修改管理員密碼密碼
dn: olcDatabase={1}mdb,cn=config,是1.1 中查出的數(shù)據(jù)olcRootPW:是1.2中獲取的加密字串
1.4 修改密碼
ldapmodify -H ldapi:// -Y EXTERNAL -f /root/newpasswd.ldif
執(zhí)行后新密碼立即生效
1.5 問題
該方法舊密碼在過期前仍然會生效。
2. 容器化方式
容器化方式啟動的ldap,啟動腳本會從環(huán)境變量中讀取字串設(shè)置為密碼,其變量如下:
LDAP_ADMIN_PASSWORD:1.1 中查到的cn=admin,dc=example,dc=org用戶的密碼變量。LDAP_CONFIG_PASSWORD:1.1 中查到的cn=admin,cn=config用戶的密碼變量
- 我們直接在docker-compose.yml中添加如下字段即可
openldap:
environment:
#- LDAP_CONFIG_PASSWORD=liube@161
- LDAP_ADMIN_PASSWORD=liubei@161
