Пароль LDAP слишком молод, чтобы его изменить.

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

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

ldap_modify: Нарушение ограничений (19)
        дополнительная информация: Пароль слишком младенец для изменения

Я создал файл ldif для пользователя в своем домашнем каталоге:

dn: где находится этот пользователь
changetype: modify
replace: userPassword
userPassword: тогдашний пароль

add: pwdReset
pwdReset: TRUE

Я выполняю файл ldif таким образом:

sudo ldapmodify -D 'uid=*****' -W -f ****.ldif

Я в затруднении, ребята, любая помощь будет оценена.

Это связано с тем, что в этой команде вы пытаетесь сделать это от имени пользователя, а не от имени администратора.

Сделайте это так:

ldapmodify -D "cn=admin,dc=imageek,dc=yesyouare" -W -x -f huehuehue.ldif

-x для нешифрованного я не знаю, используете ли вы ssl или tls, поэтому используйте это так, он попросит пароль пользователя администратора ldap в opensure или redhat, пользователя администратора, у которого есть права на запись в DIT, называют менеджером.

И отредактируйте файл ldif так:

dn: uid=onepunchman,dc=imageek,dc=yesyouare
changetype: modify
replace: userPassword
userPassword: новый_пароль_бувахаха

Я рекомендую использовать ldappasswd вместо этого, возможно, с простым скриптом вокруг, вот так:

#!/bin/sh
SERVER='ldap://server.domain.org'
CONTEXT='dc=domain,dc=org'
MANAGER='uid=Password-Admin,ou=system'
if [ -n "$1" ]; then
    DN="uid=${1},ou=users,$CONTEXT"
    echo "$MANAGER изменяет пароль для $DN используя $MANAGER"
    ldappasswd -H "$SERVER" -x -ZZ -D "$MANAGER","$CONTEXT" -W ${2:+-S }"$DN"
else
    echo "$0: отсутствует или пустое имя пользователя" >&2
    exit 1
fi

Скрипт (после настройки) ожидает имя пользователя, и он установит пароль пользователя на случайный пароль, если не указан второй параметр. Затем запрашивается новый пароль пользователя. Скрипт использует TLS зашифрованную сессию (см. страницу руководства для деталей параметров), предоставляя SSF (Безопасность) для изменения пароля.

Скрипт не устанавливает pwdReset: TRUE, но учитывая случайный пароль, большинство пользователей изменят пароль, даже если это не обязательно (если они не используют менеджер паролей, возможно).

И если вы хотите обойти ограничение “Пароль слишком младенец для изменения” (pwdMinAge), пользователь, чтобы изменить пароль, должен иметь права “управления” (см. 8.2.3. Права доступа в “Руководстве администратора OpenLDAP Software 2.6”) для изменения userPassword (возможно, и для некоторых других атрибутов, тоже; вам придется попробовать).

.

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

Проблема: Пароль слишком молод для изменения (LDAP)

Проблема, с которой вы столкнулись, является распространенной в среде LDAP, где политики управления паролями могут ограничивать возможность их изменения в короткие промежутки времени. Сообщение об ошибке, которое вы получили, указывает на то, что пароль пользователя был изменен недавно, и в соответствии с политиками, установленными для автоматического управления паролями, этот пароль нельзя изменять до истечения заданного минимального времени.

Причины проблемы

Ошибка ldap_modify: Constraint violation (19) additional info: Password is too young to change возникает из-за параметра конфигурации, называемого pwdMinAge. Этот параметр указывает минимальный период времени, в течение которого пароль не может быть изменен, после чего пользователю разрешается изменить пароль. Если пользователь пытается изменить пароль раньше, чем истечет этот период, возникает указанная ошибка.

Решение проблемы

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

  1. Изменение пароля от имени администратора:
    Чтобы обойти ограничения, установленные для обычного пользователя, рекомендуется выполнять операции изменения пароля от имени аккаунта администратора LDAP, который имеет необходимые привилегии. Как указано в вашем запросе, выполнение команды ldapmodify с использованием учетной записи администратора может помочь избежать ошибки.

    Например, вы можете выполнить команду:

    ldapmodify -D "cn=admin,dc=imageek,dc=yesyouare" -W -x -f yourfile.ldif

    Здесь -D указывает учетную запись администратора, -W попросит ввести пароль, а -x указывает на использование нешифрованного соединения. Убедитесь, что у вас есть необходимые права для выполнения этого действия.

  2. Изменение файла LDIF:
    Убедитесь, что файл LDIF, содержащий данные о пользователе, корректно сформирован. Например:

    dn: uid=onepunchman,dc=imageek,dc=yesyouare
    changetype: modify
    replace: userPassword
    userPassword: new_password

    Также признайте, что для сброса пароля может потребоваться добавить атрибут pwdReset:

    add: pwdReset
    pwdReset: TRUE
  3. Использование ldappasswd:
    Альтернативным решением, которое может упростить процесс изменения паролей, является использование утилиты ldappasswd. Этот инструмент позволяет более удобно и безопасно изменять пароли, а также может обрабатывать аутентификацию через шифрованные соединения.

    Примерный скрипт для изменения пароля может выглядеть следующим образом:

    #!/bin/sh
    SERVER='ldap://server.domain.org'
    CONTEXT='dc=domain,dc=org'
    MANAGER='uid=Password-Admin,ou=system'
    if [ -n "$1" ]; then
       DN="uid=${1},ou=users,$CONTEXT"
       echo "$MANAGER changing password for $DN using $MANAGER"
       ldappasswd -H "$SERVER" -x -ZZ -D "$MANAGER" -W ${2:+-S }"$DN"
    else
       echo "$0: missing or empty username" >&2
       exit 1
    fi
  4. Настройки политики управления паролями:
    Если у вас есть доступ к конфигурации LDAP, вы можете изменить значение pwdMinAge, чтобы сократить период блокировки изменения пароля. Однако данный подход может иметь негативные последствия для безопасности, так как часто изменяемые пароли могут быть более уязвимыми.

    Для настройки прав доступа пользователей вам также необходимо учитывать, что для изменения атрибута userPassword, возможно, потребуется предоставить права на управление через соответствующие ACL (Access Control Lists), как описано в документации OpenLDAP.

Заключение

Для успешного сброса пароля пользователя, столкнувшегося с ошибкой "Пароль слишком молод для изменения", воспользуйтесь административными учетными данными и примените вышеупомянутые подходы. Рекомендуется всегда проводить операции с паролями с особой осторожностью, следуя установленным политиками безопасности, чтобы защитить данные и аутентификацию ваших пользователей.

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

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