Как разрешить пользователям 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
Вы не можете. LDAP - это служба каталогов, которая не предоставляет инструментов для конечных пользователей. Инструмент конечного пользователя несет ответственность за предоставление этой функции.
например это должно быть возможно с использованием 'passwd', при условии, что у вас есть аутентификация PAM с использованием правильно настроенного LDAP
Вы можете включить ldap-auth-client (debian и ubuntu) для редактирования паролей, как на локальном компьютере. если ты бежишь dpkg-reconfigure ldap-auth-config
и выберите Да для Сделать локальным администратором корневой базы данных, это позволит вам запустить 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 или перезагрузите систему.
Для пользователей 389, использующих привязанные учетные записи, вы можете создать ACL для привязанных учетных записей следующим образом:
(targetattr = "*") (версия 3.0; acl "Привязать учетные записи"; allow (all) (groupdn = "ldap: /// cn = Bind Accounts, dc = ldap, dc = server");)