Amazon-Web-Services

OpenLDAP 實現只允許 root 使用者設置帳戶密碼

  • January 15, 2021

我正在使用需要使用 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 應用程序,以便非管理員使用者可以更改自己的密碼?

您連結的說明似乎讓您創建了一個沒有訪問控制的 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

引用自:https://serverfault.com/questions/1049748