未知 LDAP cn=config 管理员密码

未知 LDAP cn=config 管理员密码

当我安装 OpenLDAP 时,系统要求我为管理员用户创建密码,但现在我意识到还有另一个管理员用户的cn=config密码我不知道。有人知道我应该如何更改或获取该管理员密码吗?我使用的是全新安装的 Ubuntu 13.10。

我需要该密码因为我正在尝试设置 sudo-ldap。

答案1

我不知道当前的 Ubuntu 软件包如何进行初始 OpenLDAP 设置,但在 10.04 和 12.04 中,该过程都不能很好地解释 cn=config。如果设置了,您应该在属性中找到密码olcRootPW/etc/ldap/slapd.d/cn=config/olcDatabase={0}config.ldif可能是 base64 编码的)。

要更改密码,请使用ldapmodifyroot 身份。将其保存为 LDIF 文件rootpw_cnconfig.ldif

dn:olcDatabase={0}config,cn=config
变更类型:修改
替换:olcRootPW
olcRootPW: foobar123

笔记:为了更改 CentOS7 上的 root 密码,请使用dn: olcDatabase={2}hdb,cn=config而不是dn: olcDatabase={0}config,cn=config

显然,请将你的密码设置为除 之外的其他密码foobar123。然后运行ldapmodify

$ sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f rootpw_cnconfig.ldif

这假定cn=config可以使用 ldapi 协议 ( ) 访问 LDAP 服务器和数据库,-H ldapi:///并且外部 SASL 身份验证 ( -Y EXTERNAL) 已启用并正常工作,默认情况下,Debian 和 Ubuntu 中的新 OpenLDAP 设置应该如此。如果您查看/etc/ldap/slapd.d/cn=config/olcDatabase={0}config.ldif它应该包含一个属性olcAccess

olcAccess:{0}至 * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external
  ,cn=auth 管理通过 * break

答案2

如果您不知道如何更改默认cn=config的访问权限access to * by * none(在某些 openldap 分发中),可以使用以下解决方法:

  1. 创建适当的 slapd.conf,其中包含:
database config
rootdn "cn=admin,cn=config"
rootpw password
access to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth manage by * break
  1. 将其转换为 LDIF:
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/
  1. 跑步slapd
  2. 使用 SASL 授权添加/修改 LDAP 数据库,例如:
sudo ldapadd -Y EXTERNAL -Q -H ldapi:/// <<EOF
dn: cn=config
objectClass: olcGlobal
cn: config
olcIdleTimeout: 30
olcLogLevel: stats config sync
olcArgsFile: /run/openldap/slapd.args
olcPidFile: /run/openldap/slapd.pid

dn: cn=schema,cn=config
objectClass: olcSchemaConfig
cn: schema

include: file:///etc/openldap/schema/core.ldif

dn: olcDatabase=frontend,cn=config
objectClass: olcDatabaseConfig
objectClass: olcFrontendConfig
olcDatabase: frontend

dn: olcDatabase=mdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcMdbConfig
olcDatabase: mdb
olcSuffix: dc=my-domain,dc=com
olcRootDN: cn=Manager,dc=my-domain,dc=com
olcRootPW: secret
olcDbDirectory: /var/lib/openldap/openldap-data
olcDbIndex: objectClass eq
EOF

相关内容