Вопрос или проблема
Как-то я оказался в SLES 15 с такими сообщениями об ошибках:
(systemd)[6729]: PAM не может загрузить /lib64/security/pam_ldap.so: /lib64/security/pam_ldap.so: невозможно открыть общий файл: Нет такого файла или каталога
Тем не менее, я не уверен, что привело к этой ситуации, и также не уверен, как это исправить, потому что, похоже, нет RPM с pam_ldap.so
.
Система была обновлена с SLES 12 SP5 на SLES 15 SP3 до SLES 15 SP4.
Очевидно, что настройка клиента LDAP предполагалась и однажды работала, но в данный момент не работает.
Из журнала изменений для SLES 15 SP4 кажется, что pam_ldap
был удален. Я предполагаю, что вам нужно использовать pam_sss
, который поддерживает LDAP.
.
Ответ или решение
Если вы столкнулись с ошибкой «PAM unable to dlopen(/lib64/security/pam_ldap.so)» в SLES 15 SP4 после обновления системы с SLES 12 SP5, существует предпосылка, что в процессе апгрейда произошли изменения в поддержке PAM и LDAP. Изменения в системных модулях PAM могут вызвать подобные ошибки. В данной ситуации модуль pam_ldap
больше не поддерживается и не доступен в SLES 15 SP4.
Вот шаги, которые необходимо выполнить, чтобы исправить эту ситуацию:
1. Анализ текущей конфигурации
Для начала проверьте конфигурационные файлы PAM, например /etc/pam.d/common-auth
, /etc/pam.d/common-account
и другие, присутствуют ли там упоминания pam_ldap
.
В случае наличия, их потребуется заменить или удалить.
2. Установка и настройка SSSD
В новых версиях SLES предлагается использовать pam_sss
, который поддерживает работу с LDAP.
-
Установите SSSD:
Команда для установки SSSD:zypper install sssd
-
Настройте SSSD:
Создайте или отредактируйте файл конфигурации/etc/sssd/sssd.conf
. Типовая конфигурация будет выглядеть следующим образом:[sssd] services = nss, pam domains = LDAP [domain/LDAP] id_provider = ldap auth_provider = ldap ldap_uri = ldap://your-ldap-server ldap_search_base = dc=yourdomain,dc=com
Обратите внимание, что параметры
ldap_uri
иldap_search_base
нужно заменить на ваши реальные значения. -
Обновите конфигурацию PAM:
Убедитесь, что PAM использует SSSD для аутентификации. Проверьте, например,/etc/pam.d/common-auth
,/etc/pam.d/common-account
на наличие:auth required pam_sss.so account required pam_sss.so
3. Перезапустите службы
После настройки перезапустите службы для применения изменений:
systemctl restart sssd
4. Тестирование и проверка
Проверьте, правильно ли функционирует система аутентификации с помощью команды:
getent passwd
Если данные LDAP видны, а аутентификация работает, проблема решена.
Использование pam_sss
вместо устаревшего pam_ldap
является оптимальным решением в современных версиях SLES. Данный подход обеспечивает не только совместимость, но и предлагает дополнительные возможности интеграции с различными системами аутентификации.