OpenLDAP 实现仅允许 root 用户设置账户密码

OpenLDAP 实现仅允许 root 用户设置账户密码

我正在开发的应用程序需要使用 AWS ParallelCluster 资产来进行一些高性能处理。初始设置后,我们需要能够添加/删除用户帐户,我正在尝试根据以下内容进行设置这些说明解释了如何为此目的在集群头上设置一个简单的 openLDAP 目录服务。

我已成功遵循这些说明,并能够创建一个 LDAP 非管理员帐户。以 root 身份登录后,我可以使用以下命令设置此帐户的密码:

sudo ldappasswd -H ldap://localhost:389 -x -D "cn=ldapadmin,dc=<stack_name>,dc=internal" -W -S uid=<username>,ou=Users,dc=<stack_name>,dc=internal -y <path/to/file/with/LDAP/password>

此时,我可以切换到新的 LDAP 非管理员帐户。不幸的是,如果我以此用户身份登录并执行命令 passwd,则会收到以下错误:

password change failed: Insufficient access
passwd: Authentication token manipulation error

如何配置我的 openLDAP 应用程序以便非管理员用户可以更改自己的密码?

答案1

您链接到的说明似乎让您创建一个没有访问控制的 OpenLDAP 数据库,这基本上意味着 olcRootDn 写入和 * 读取。(您的所有 OpenLDAP 用户都可以读取数据库中的所有内容,如果他们能弄清楚如何绕过默认的 500 次读取限制,甚至可以转储它)。您需要先调整它。

最小可行:

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to attrs=userPassword
  by self write
  by * auth
olcAccess: {1}to *
  by * read

相关内容