Пользователи OpenLDAP на ArchLinux не могут изменить пароль
Я открыл офис, и мне НУЖНА централизованная регистрация и домашние каталоги для работы. Поскольку все рабочие станции будут работать с Arch и возникли проблемы с различными версиями LDAP, я наконец пришел к выводу, что серверу LDAP также нужен Arch.
Я сделал полностью чистую установку Arch на сервере и на рабочей станции. Оба имеют группы пакетов "base" и "base-devel", NTP, OpenSSH и OpenLDAP, на сервере также есть nss-pam-ldapd. Это в значительной степени это прямо сейчас.
- Я следовал за 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.
- Подписан на https://wiki.archlinux.org/index.php/LDAP_Authentication
- Я не запустил или не включил nscd
- Теперь я могу войти в систему с пользователями 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
Итак, наконец, мои вопросы:
- Во-первых, где лучше всего почитать об этом?
- Во-вторых, как мне отладить себя? Arch использует systemd, где системный журнал для систем на основе systemd?
- Что такое пакет mlocate с updatedb и locate? Мне нужно использовать это? Это не упоминается в archwiki, но упоминается во многих других местах.
- И актуальный вопрос: почему мои пользователи не могут менять пароли с помощью passwd?
0 ответов
На клиенте вы должны раскомментировать в /etc/nslcd.conf следующим образом:
rootpwmoddn cn = admin, dc = пример,dc=com
и измените cn и dc как rootdn в slapd.conf на сервере