OpenLDAP配置ACL遇错及ldapsearch连接失败求助
OpenLDAP ACL配置问题解决
问题1:ldapsearch无法访问cn=config目录
你用ldap://mynewdomain.com访问cn=config失败,是因为默认OpenLDAP的cn=config(配置目录)仅允许通过本地套接字ldapi:///访问,且仅允许本地root用户通过SASL EXTERNAL认证访问。正确的查询命令为:
sudo ldapsearch -Y EXTERNAL -H ldapi:/// -LLL -b cn=config "(objectClass=olcDatabaseConfig)"
执行后会列出所有数据库配置条目,找到你的目标数据库DN(比如olcDatabase={1}mdb,cn=config)。
问题2:ldapmodify报错“no global superior knowledge”
这个错误是因为你在DN行里保留了注释内容,服务器无法识别带注释的DN。解决步骤:
- 用上面的查询命令确认你的数据库DN(比如
olcDatabase={1}mdb,cn=config,注意{X}是实际数字,比如{1}或{0}) - 执行修改命令时,必须删除DN行的注释,示例命令如下(替换{1}为你的实际数字):
sudo ldapmodify -Y EXTERNAL -H ldapi:/// <<EOF dn: olcDatabase={1}mdb,cn=config changetype: modify replace: olcAccess olcAccess: {0}to dn.base="" by * read olcAccess: {1}to attrs=userPassword,shadowLastChange by self write olcAccess: {2}to * by dn="cn=admin,dc=mynewdomain,dc=com" write by * read EOF
ACL编写要点
- 语法规则:
olcAccess: {N}to <目标> by <主体> <权限>{N}:规则优先级,数字越小越先匹配<目标>:dn.base=""匹配根目录,*匹配所有条目,attrs=userPassword匹配指定属性<主体>:*所有用户,self条目自身,dn="cn=admin,dc=mynewdomain,dc=com"指定管理员<权限>:read读取,write写入,search搜索,none无权限
- 修改后验证ACL:
sudo ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config olcDatabase={1}mdb olcAccess
内容的提问来源于stack exchange,提问作者Farziddin Doniyorov
相关产品推荐
相关产品推荐

