You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bitnami OpenLDAP Docker容器ACL读写权限配置及导入问题求助

解决Bitnami OpenLDAP Docker容器的ACL导入问题

核心问题分析

  • 出现找不到cn=config或未认证错误,是因为操作配置库(cn=config)必须使用LDAP配置管理员账号,而非普通域管理员(admin@dc=example,dc=com)。
  • 你的LDIF片段存在格式错误,且目标DN与需求不符(你要配置ou=groups但写的是ou=User)。

步骤1:使用配置管理员认证访问cn=config

Bitnami OpenLDAP开启LDAP_CONFIG_ADMIN_ENABLED=yes后,默认配置管理员账号为:

cn=admin,cn=config

密码与你设置的LDAP_ADMIN_PASSWORD一致(即admin)。


步骤2:编写正确的ACL LDIF文件

假设你要给cn=x,ou=groups,dc=example,dc=com组,授予对ou=groups,dc=example,dc=com子树的读写权限,正确的LDIF示例如下:

dn: olcDatabase={1}mdb,cn=config
changetype: modify
# 注意:不要直接删除所有olcAccess,避免丢失默认ACL,建议新增规则
add: olcAccess
olcAccess: {1}to dn.subtree="ou=groups,dc=example,dc=com"
  by group.exact="cn=x,ou=groups,dc=example,dc=com" write
  by * read  # 保留其他用户的只读权限,可根据需求调整

关键修正说明:

  • 拆分add: olcAccess和olcAccess: ...为单独行,LDIF语法要求每个属性行独立。
  • 目标DN改为你实际需要的ou=groups,dc=example,dc=com。
  • group.exact需要指定组的完整条目DN,而非OU路径。
  • 保留默认权限规则(如by * read),避免破坏原有LDAP功能。

步骤3:导入LDIF到容器

方式1:使用容器内的ldapmodify命令

在宿主机执行以下命令,进入容器并导入LDIF:

# 进入OpenLDAP容器
docker exec -it openldap bash

# 执行导入命令,使用配置管理员认证
ldapmodify -x -D cn=admin,cn=config -w admin -f /ldifs/your-acl-file.ldif

方式2:通过phpLDAPadmin操作

  1. 登录phpLDAPadmin时,选择Server -> cn=config作为连接目标。
  2. 绑定DN填写cn=admin,cn=config,密码填admin。
  3. 找到olcDatabase={1}mdb,cn=config条目,编辑其olcAccess属性,添加你需要的规则。

验证ACL是否生效

可以用目标组内的用户绑定LDAP,尝试读写ou=groups下的条目,或者用ldapsearch测试:

# 用组内用户绑定(假设用户是cn=testuser,ou=users,dc=example,dc=com)
ldapsearch -x -D cn=testuser,ou=users,dc=example,dc=com -w testpass -b ou=groups,dc=example,dc=com
# 尝试修改条目(比如添加描述)
ldapmodify -x -D cn=testuser,ou=users,dc=example,dc=com -w testpass <<EOF
dn: cn=x,ou=groups,dc=example,dc=com
changetype: modify
add: description
description: Test ACL access
EOF

内容的提问来源于stack exchange,提问作者Indi GP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 04:22:32