Вы не можете. LDAP является службой каталогов и не обеспечивает инструменты конечного пользователя. Это - обязанность инструмента конечного пользователя обеспечить эту функциональность.
например, это должно быть возможное использование 'passwd', предположив, что у Вас есть аутентификация PAM с помощью LDAP, настроенного правильно
Конфигурация OpenLDAP по умолчанию уже имеет это:
# The userPassword by default can be changed
# by the entry owning it if they are authenticated.
# Others should not be able to see it, except the
# admin entry below
# These access lines apply to database #1 only
access to attrs=userPassword,shadowLastChange
by anonymous auth
by self write
by * none
Для пользователей из 389, использующих привязные учетные записи, можно создать ACL в соответствии со следующим для привязных учетных записей:
(targetattr ="*")(версия 3.0;acl "Bind Accounts";allow (all) (groupdn = "ldap:///cn=Bind Accounts, dc=ldap,dc=server");)
Вы можете разрешить ldap-auth-client (debian и ubuntu) редактировать пароли, как на локальном компьютере. если ты бежишь
dpkg-reconfigure ldap-auth-config
и выберите yes для параметра Make local root Database admin, это позволит вам запустить passwd
, как обычно.
Вы также можете сделать это, редактируя ваш файл /etc/ldap.conf и добавляя:
# The distinguished name to bind to the server with
# if the effective user ID is root. Password is
# stored in /etc/ldap.secret (mode 600)
rootbinddn dn-for-your-admin-account-in-ldap
Если вы редактируете файл вручную, вам нужно опубликовать пароль для учетной записи root в /etc/ldap.secret и сделать его 600
. отредактировать /etc/pam.d/common-password и удалить параметр use_authtok
. Если вы редактируете свои файлы pam, обязательно запустите pam-auth-update или перезагрузите систему.