Как изменить пароль пользователя LDAP?

Вопрос или проблема

Возможно ли изменить пароль для вошедшего пользователя LDAP с помощью команды passwd?

Я вошел на server1, используя testuser. Попытался изменить пароль для себя (testuser) и получил следующую ошибку.

[testuser@server1 ~]$ passwd  
Изменение пароля для пользователя testuser.  
(текущий) LDAP пароль:  
Новый пароль:  
Повторите новый пароль:  
изменение пароля не удалось: Недостаточно прав  
passwd: ошибка обработки токена аутентификации 

Смотрите “ТРЕБОВАНИЯ К ОПЕРАЦИЯМ” в slapd.access(5).

К сожалению, настройка ACL в OpenLDAP не является тривиальной задачей, и вы можете легко заблокировать доступ всем, кроме администратора.

Но ваши ACL для базы данных должны содержать что-то вроде (используя формат cn=config):

...
olcAccess: {5}to attrs=userPassword by self write by * auth
olcAccess: {6}to attrs=shadowLastChange by self write by * none
olcAccess: {7}to * by * read

Ответ или решение

Чтобы изменить пароль для пользователя LDAP, необходимо учитывать несколько аспектов конфигурации самого сервера LDAP (например, OpenLDAP), а также разрешения, установленные для пользователя. Ошибка, которую вы получили ("Insufficient access"), указывает на то, что для изменения пароля у вас недостаточно прав.

Вот шаги, которые необходимо выполнить для успешного изменения пароля:

  1. Проверьте права доступа (ACL): Убедитесь, что у ваших пользователей есть права на изменение собственного пароля. Для этого вам нужно ознакомиться с конфигурацией ACL вашего сервера LDAP. Если у вас есть доступ к файлу конфигурации, убедитесь, что там прописаны соответствующие права.

    Пример конфигурации ACL может выглядеть так:

    olcAccess: {5}to attrs=userPassword by self write by * auth
    olcAccess: {6}to attrs=shadowLastChange by self write by * none
    olcAccess: {7}to * by * read

    В этом примере предоставляются права на изменение атрибута userPassword (пароль пользователя) самим пользователям, что позволяет им менять свои пароли.

  2. Измените конфигурацию (если необходимо): Если ваши ACL не настроены правильно, вам понадобится внести изменения. Это может быть сделано через команду ldapmodify. Для этого создайте файл с настройками, к примеру, modify_acl.ldif, и добавьте в него:

    dn: cn=config
    changetype: modify
    replace: olcAccess
    olcAccess: {5}to attrs=userPassword by self write by * auth
    olcAccess: {6}to attrs=shadowLastChange by self write by * none
    olcAccess: {7}to * by * read

    После этого выполните команду:

    ldapmodify -Y EXTERNAL -H ldapi:/// -f modify_acl.ldif
  3. Проверьте правильность аутентификации: Убедитесь, что вы используете правильные учетные данные при входе в систему и при попытке изменить пароль через команду passwd.

  4. Измените пароль: После настройки прав доступа попробуйте снова использовать команду passwd для изменения пароля:

    passwd

    Введите текущий пароль и затем новый пароль дважды.

  5. Проверьте наличие ошибок: Если после изменения конфигурации у вас возникли проблемы, проверьте логи сервера LDAP для диагностики ошибок, что может помочь в поиске дополнительных проблем.

Дополнительные советы:

  • Тщательно проверяйте настройки ACL, чтобы не заблокировать доступ для всех пользователей.
  • Рекомендуется создавать резервные копии конфигурации перед внесением изменений.

Выполнив эти шаги, вы должны суметь успешно изменить пароль для пользователя LDAP, используя команду passwd.

Оцените материал
Добавить комментарий

Капча загружается...