Реализация 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 non-admin. К сожалению, если, будучи в системе под этим пользователем, я выполню команду 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

Связанный контент