Пользователи OpenLDAP на ArchLinux не могут изменить пароль

Я открыл офис, и мне НУЖНА централизованная регистрация и домашние каталоги для работы. Поскольку все рабочие станции будут работать с Arch и возникли проблемы с различными версиями LDAP, я наконец пришел к выводу, что серверу LDAP также нужен Arch.

Я сделал полностью чистую установку Arch на сервере и на рабочей станции. Оба имеют группы пакетов "base" и "base-devel", NTP, OpenSSH и OpenLDAP, на сервере также есть nss-pam-ldapd. Это в значительной степени это прямо сейчас.

  1. Я следовал за https://wiki.archlinux.org/index.php/OpenLDAP но мне пришлось сделать следующее по-разному (и я еще не настроил SSL или TLS):
    • Прежде чем я скопировал DB_CONFIG.example, я запустил updatedb и использовал locate DB_CONFIG.
    • Мне пришлось запустить slaptest с опцией -u, чтобы подавить предупреждения базы данных
    • После запуска slaptest я выбрал команду -R ldap:ldap в /etc/openldap/slap.d
    • Запуск systemctl slapd завершается неудачно, также как и sudo slapd -u ldap -g ldap, но sudo slapd работал.
    • После запуска sudo slapd я убил slapd и выбрал -R ldap:ldap /var/lib/openldap, но запуск systempl slapd все еще не удался.
    • после chown -R ldap:ldap /etc/openldap я мог бы наконец использовать systemctl start slapd... я предполагаю, что это была папка схемы, которая не могла быть прочитана ldap при запуске с пользователем ldap.
  2. Подписан на https://wiki.archlinux.org/index.php/LDAP_Authentication
    • Я не запустил или не включил nscd
  3. Теперь я могу войти в систему с пользователями LDAP на рабочей станции нормально, и я могу обновить каталог, используя мой rootdn.

Проблема: пользователи не могут сменить пароль с помощью passwd. LPAD возвращает:

password change failed: Insufficient access

/etc/slapd.conf (на сервере):

include     /etc/openldap/schema/core.schema
include     /etc/openldap/schema/cosine.schema
include     /etc/openldap/schema/inetorgperson.schema
include     /etc/openldap/schema/nis.schema
pidfile     /run/openldap/slapd.pid
argsfile    /run/openldap/slapd.args
access to attrs=userPassword
    by self write
    by anonymous auth
    by * none
access to *
    by self write
    by * read
database    bdb
suffix      "dc=testing,dc=com"
rootdn      "cn=Manager,dc=testing,dc=com"
rootpw      {SSHA}ntsD5qrvHJtMflarQPhJzapiEEnqH2/L
directory   /var/lib/openldap/openldap-data
index   objectClass eq
index   uid             pres,eq
index   mail            pres,sub,eq
index   cn              pres,sub,eq
index   sn              pres,sub,eq
index   dc              eq

/etc/openldap/ldap.conf (на клиенте):

BASE   dc=testing,dc=com
URI    ldap://192.168.1.50

/etc/nslcd.conf (на клиенте):

uid nslcd
gid nslcd
uri ldap://192.168.1.50/
base dc=testing,dc=com

/etc/pam.d/system-auth (на клиенте):

auth      sufficient  pam_ldap.so
auth      required  pam_unix.so     try_first_pass nullok
auth      optional  pam_permit.so
auth      required  pam_env.so
account   sufficient  pam_ldap.so
account   required  pam_unix.so
account   optional  pam_permit.so
account   required  pam_time.so
password  sufficient  pam_ldap.so
password  required  pam_unix.so     try_first_pass nullok sha512 shadow
password  optional  pam_permit.so
session   required  pam_limits.so
session   required  pam_unix.so
session   optional  pam_ldap.so
session   optional  pam_permit.so

/etc/pam.d/passwd (на клиенте):

password    sufficient  pam_ldap.so
password    required    pam_unix.so sha512 shadow nullok

Итак, наконец, мои вопросы:

  1. Во-первых, где лучше всего почитать об этом?
  2. Во-вторых, как мне отладить себя? Arch использует systemd, где системный журнал для систем на основе systemd?
  3. Что такое пакет mlocate с updatedb и locate? Мне нужно использовать это? Это не упоминается в archwiki, но упоминается во многих других местах.
  4. И актуальный вопрос: почему мои пользователи не могут менять пароли с помощью passwd?

0 ответов

На клиенте вы должны раскомментировать в /etc/nslcd.conf следующим образом:

rootpwmoddn cn = admin, dc = пример,dc=com

и измените cn и dc как rootdn в slapd.conf на сервере

Другие вопросы по тегам