Вопрос или проблема
Я использую Centos 7 для локальной аутентификации пользователей Active Directory с использованием kerberos. Я присоединился к области как Администратор, и могу войти/ssh через это/с этим, nslookup работает нормально, и adcli info также работает. Когда я создаю другого пользователя с именем test и пытаюсь войти через Centos, я получаю следующее:
id: test: нет такого пользователя
getent passwd test не возвращает ничего
Вот мои файлы конфигурации:
sssd.conf
domains = gio.server
config_file_version = 2
services = nss, pam
[domain/gio.server]
ad_domain = gio.server
krb5_realm = GIO.SERVER
realmd_tags = manages-system joined-with-samba
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = False
fallback_homedir = /home/%u
access_provider = ad
Вот krb5.conf
# Конфигурационные фрагменты могут быть также размещены в этой директории
includedir /etc/krb5.conf.d/
includedir /var/lib/sss/pubconf/krb5.include.d/
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default = GIO.SERVER
dns_lookup_realm = true
dns_lookup_kdc = true
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
pkinit_anchors = FILE:/etc/pki/tls/certs/ca-bundle.crt
# default_realm = EXAMPLE.COM
default_ccache_name = KEYRING:persistent:%{uid}
default_realm = GIO.SERVER
[realms]
GIO.SERVER = {
kdc = gio.server:88
default_domain = gio.server
# kdc = kerberos.example.com
# admin_server = kerberos.example.com
}
[domain_realm]
# .example.com = EXAMPLE.COM
# example.com = EXAMPLE.COM
.gio.server = GIO.SERVER
gio.server = GIO.SERVER
Тем не менее, когда я пытался отлаживать с использованием sssctl user-checks test, он вернул следующую ошибку:
user: test
action: acct
service: system-auth
sss_getpwnam_r не удался с [0].
Поиск имени пользователя с [test] не удался.
Невозможно получить объект пользователя InfoPipe Поиск пользователя с [test] не удался.
тестирование pam_acct_mgmt
pam_acct_mgmt: Пользователь неизвестен модулю аутентификации
PAM Окружение:
- никакой env -
Пожалуйста, если что-то отсутствует, дайте мне знать.
Основная проблема заключается в отсутствии прав на чтение для конкретных свойств, которые учетная запись компьютера требует для учетных записей пользователей в AD.
Когда пользователь добавляется в Domain Admins, наследование прав отключается, и определенные права явно предоставляются аутентифицированным пользователям. Это позволяет серверу извлекать необходимые свойства для аутентификации администраторов, но не обычных пользователей.
Чтобы исправить эту проблему, предоставьте аутентифицированным пользователям или специально созданной группе безопасности права “Список содержимого”, “Чтение всех свойств” и “Чтение разрешений” на корне домена, применяя их к “Потомкам объектов пользователя”.
Ответ или решение
Решение проблемы: "id: user: no such user" при аутентификации пользователей Active Directory в CentOS 7
Введение
В этой статье мы обсудим распространенную проблему, с которой сталкиваются администраторы при аутентификации пользователей Active Directory (AD) на серверах CentOS 7. Проблема заключается в том, что при попытке аутентификации нового пользователя возникает сообщение об ошибке: id: test: no such user
. Это может быть связано с неправильной конфигурацией системы, проблемами с разрешениями или отсутствием необходимых учетных данных в AD.
Симптомы
Проблема проявляется следующим образом:
- Пользователь
test
, созданный в AD, не может быть найден. - Команда
getent passwd test
не отображает информации о пользователе. - Тестирование с помощью
sssctl user-checks test
возвращает ошибку о том, что имя пользователя не найдено.
Анализ конфигурации
На основании предоставленных конфигурационных файлов sssd.conf
и krb5.conf
, можно сделать несколько замечаний:
- SSSD конфигурация: Конфигурация SSSD достаточно стандартизирована для работы с AD. Обратите внимание, что параметр
ldap_id_mapping = True
позволяет использовать ID-отображение LDAP. - Kerberos конфигурация: Настройки Kerberos в файле
krb5.conf
также выглядят корректно. Убедитесь, что домен и реалм указаны правильно.
Причины проблемы
Исходя из описания ситуации и ошибок, можно выделить несколько причин:
- Проблемы с разрешениями в AD: Часто причиной ошибки является то, что учетная запись компьютера (в данном случае сервер на CentOS) не имеет достаточных прав для чтения атрибутов учетных записей пользователей в Active Directory. Это может происходить из-за отключения наследования разрешений для учетных записей, когда они добавляются в группы, такие как "Domain Admins".
- Ошибка конфигурации SSSD или PAM: Вероятно, существуют проблемы в настройках управления доступом или учетными записями, которые могут препятствовать SSSD корректно получать информацию о пользователе.
Решение
Для решения проблемы рекомендуется выполнить следующие шаги:
-
Проверка разрешений в AD:
- Войдите в контроллер домена AD с учетной записью, обладающей правами администратора.
- Перейдите в "Active Directory Users and Computers".
- Найдите и щелкните правой кнопкой мыши на корневом узле домена.
- Выберите
Properties
→Security
→Advanced
. - Убедитесь, что группа "Authenticated Users" имеет разрешение
List contents
,Read all properties
иRead permissions
, применяемое к "Descendant User objects". Если разрешения отсутствуют, добавьте их.
-
Проверка конфигурации SSSD:
- Убедитесь, что служба SSSD запущена и работает корректно с помощью команд:
systemctl restart sssd systemctl status sssd
- Если изменения в разрешениях были внесены, перезагрузите службу SSSD, чтобы обновить кэш.
- Убедитесь, что служба SSSD запущена и работает корректно с помощью команд:
-
Тестирование аутентификации:
- После выполнения вышеуказанных шагов попробуйте снова выполнить команду
ssssctl user-checks test
для проверки доступности пользователя. - Также проверьте возможность аутентификации с помощью команды:
id test
- После выполнения вышеуказанных шагов попробуйте снова выполнить команду
-
Логи и отладка:
- Проверьте логи SSSD для выявления дополнительных ошибок:
tail -f /var/log/sssd/sssd.log
- Анализируйте логи Kerberos для выявления возможных проблем с аутентификацией.
- Проверьте логи SSSD для выявления дополнительных ошибок:
Заключение
Следуя вышеизложенным шагам, вы сможете устранить ошибку "id: user: no such user" при аутентификации пользователей Active Directory на CentOS 7. Обратите внимание на разрешения в Active Directory, так как они играют критическую роль в успешной интеграции. Убедитесь в корректности конфигурации SSSD и ведите мониторинг логов для своевременных выявлений и устранений проблем.