| Summary: | Не запускается sssd с LDAP | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | Pavel <ppn.dep136> |
| Component: | sssd-ldap | Assignee: | Evgeny Sinelnikov <sin> |
| Status: | NEW --- | QA Contact: | qa-sisyphus |
| Severity: | normal | ||
| Priority: | P5 | CC: | alimektor, asheplyakov, iv, shaba, sin, slev, zvn |
| Version: | unstable | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
|
Description
Pavel
2025-10-31 12:47:11 MSK
Попробовал через ALT Domain, воспроизвёл ошибку https://bugzilla.altlinux.org/45470. Пожалуйста, предоставьте конкретные шаги для воспроизведения, а именно Ваше создание и настройки авторизации LDAP + SSSD (сервер + клиент). Без данной информации проблему не воспроизвести. (Ответ для Evgeny Shesteperov на комментарий #1) > Попробовал через ALT Domain, воспроизвёл ошибку > https://bugzilla.altlinux.org/45470. > > Пожалуйста, предоставьте конкретные шаги для воспроизведения, а именно Ваше > создание и настройки авторизации LDAP + SSSD (сервер + клиент). Без данной > информации проблему не воспроизвести. Добрый День. Шаги для воспроизведения: 1. На хост развернут сервер с дистрибутива "alt-server-v-10.4-x86_64.iso". 2. Настроена LDAP авторизация, содержимое файлов конфигурации предоставлено в первоначальном сообщении. 2.1 Дополнительно: cat ./nsswitch.conf passwd: files systemd sss shadow: tcb files sss group: files systemd sss role gshadow: files sss hosts: files myhostname dns ethers: files netmasks: files networks: files protocols: files rpc: files services: files automount: files aliases: files control system-auth sss 3. Проведено обновление с p10-PVE до p11-PVE по инструкции: https://www.altlinux.org/Update/p11#Обновление; https://www.altlinux.org/Update/p11-PVE По окончании обновления: Установка завершена. Ошибок нет. Статус сервиса: Job for sssd.service failed because the control process exited with error code. See "systemctl status sssd.service" and "journalctl -xeu sssd.service" for details. Job for user@16284.service failed because a fatal signal was delivered to the control process. See "systemctl status user@16284.service" and "journalctl -xeu user@16284.service" for details Конфигурацию LDAP-сервера выложить не предоставляется возможным, система настроена на ОС: Debian 8. для работы с локальным кэшем sssd , который в /var/lib/sssd находится в формате .ldb не хватает /usr/lib64/samba/ldb.mit/ldb.so нужно установить samba-dc-libs, в котором он сидит. почему-то (это главное во всей этой проблеме) этот пакет не вписали в зависимости для sssd-ldap Версия
- sssd-ldap-2.9.7-alt4
Дистрибутивы
- ALT Linux 11.0 (Sisyphus)
Шаги воспроизведения
Настроить сервер (от root):
apt-get install -y openldap-common openldap-servers openldap-clients netcat
hostnamectl set-hostname dc.alttest.org
domainname dc.alttest.org
reboot
rm -rf /var/lib/ldap/bases/alttest.org
mkdir -p /var/lib/ldap/bases/alttest.org
chown ldap:ldap /var/lib/ldap/bases/alttest.org
chmod 700 /var/lib/ldap/bases/alttest.org
\cp /etc/openldap/slapd-mdb-db01.conf /etc/openldap/slapd-mdb-db01.conf.bak
cat <<EOF > /etc/openldap/slapd-mdb-db01.conf
database mdb
suffix "dc=alttest,dc=org"
rootdn "cn=admin,dc=alttest,dc=org"
rootpw $(slappasswd -s 12345678)
directory /var/lib/ldap/bases/alttest.org
index objectClass eq
index cn,uid eq
index uidNumber,gidNumber eq
index mail sub
access to *
by dn.base="cn=admin,dc=alttest,dc=org" write
by * read
EOF
sed -i "s|#SLAPDURLLIST=\"'ldapi|SLAPDURLLIST=\"'ldapi|g" /etc/sysconfig/ldap
systemctl enable --now slapd && sleep 5; systemctl status slapd --no-pager -l
cat <<EOF > base.ldif
dn: dc=alttest,dc=org
objectClass: top
objectClass: domain
dc: alttest
dn: cn=admin,dc=alttest,dc=org
objectClass: top
objectClass: organizationalRole
cn: admin
description: LDAP Administrator
EOF
ldapadd -x -D "cn=admin,dc=alttest,dc=org" -w "12345678" -f base.ldif -H ldap://localhost:389
slapcat -n 1 2>/dev/null | grep "dn:.*alttest"
nc -zv localhost 389
ldapsearch -H ldap://localhost:389 -x -b "dc=alttest,dc=org" -D "cn=admin,dc=alttest,dc=org" -w "12345678"
ldapwhoami -H ldap://localhost:389 -x -D "cn=admin,dc=alttest,dc=org" -w "12345678"
cat > people_ou.ldif <<"EOF"
dn: ou=People,dc=alttest,dc=org
objectClass: top
objectClass: organizationalUnit
ou: People
description: Container for user entries
EOF
cat <<EOF > ldapuser.ldif
dn: uid=ldapuser,ou=People,dc=alttest,dc=org
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
uid: ldapuser
cn: LDAP User
sn: User
givenName: LDAP
displayName: LDAP User
mail: ldapuser@alttest.org
userPassword: $(slappasswd -s 12345678)
uidNumber: 10001
gidNumber: 10001
homeDirectory: /home/ldapuser
loginShell: /bin/bash
EOF
ldapadd -x -D "cn=admin,dc=alttest,dc=org" -w "12345678" -f people_ou.ldif -H ldap://localhost:389
ldapadd -x -D "cn=admin,dc=alttest,dc=org" -w "12345678" -f ldapuser.ldif -H ldap://localhost:389
Настроить клиент (от root):
apt-get install -y sssd sssd-ldap openldap-clients
hostnamectl set-hostname cli.alttest.org
echo "<IP сервера> dc.alttest.org" >> /etc/hosts # server
echo -e "name_servers=<IP сервера>\nsearch_domains=alttest.org" >> /etc/resolvconf.conf # server
reboot
nc -zv dc.alttest.org 389
ldapsearch -H ldap://dc.alttest.org:389 -x -b "dc=alttest,dc=org" -D "cn=admin,dc=alttest,dc=org" -w "12345678" "(uid=ldapuser)" cn mail
cat <<EOF > /etc/sssd/sssd.conf
[sssd]
config_file_version = 2
services = nss, pam
domains = alttest
debug_level = 7
[nss]
filter_users = root,ldap,named,avahi,haldaemon,dbus,nscd
[pam]
pam_pwd_expiration_warning = 3
[domain/alttest]
id_provider = ldap
auth_provider = ldap
ldap_search_base = dc=alttest,dc=org
ldap_tls_reqcert = never
cache_credentials = true
lookup_family_order = ipv4_only
ignore_group_members = True
ldap_uri = ldap://dc.alttest.org
EOF
control system-auth sss
sed -i '/^passwd:/s/$/ sss/' /etc/nsswitch.conf
sed -i '/^shadow:/s/$/ sss/' /etc/nsswitch.conf
sed -i '/^gshadow:/s/$/ sss/' /etc/nsswitch.conf
sed -i '/^group:/s/role$/sss role/' /etc/nsswitch.conf
systemctl enable --now sssd && sleep 5; systemctl status sssd --no-pager -l
getent passwd ldapuser
Ожидаемый результат: успешно запущенный сервис, вывод в конце:
ldapuser:*:10001:10001:LDAP User:/home/ldapuser:/bin/bash
Фактический результат: ошибка
SSSD couldn't load the configuration database [5]: Input/output error.
Воспроизводится в P11.
После установки пакета task-auth-freeipa (просто установка samba-dc-libs не помогла) и перезапуска SSSD работа восстанавливается (сервис работает, пользователи резолвятся).
(Ответ для Evgeny Shesteperov на комментарий #5) > После установки пакета task-auth-freeipa (просто установка samba-dc-libs не > помогла) и перезапуска SSSD работа восстанавливается (сервис работает, > пользователи резолвятся). Евгений, спасибо большое за такой подробный тестовый пример, но здесь одно только непонятно, для чего нужно устанавливать для работы с ldap task-auth-freeipa, если должен работать task-auth-ldap-sssd ? (Ответ для zvn на комментарий #6) > task-auth-freeipa, если должен работать task-auth-ldap-sssd > ? Я просто пытался восстановить работоспособность сервиса, task-auth-freeipa приведён здесь в качестве примера. |