идентификатор: пользователь: такого пользователя нет

Вопрос или проблема

Я использую 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, можно сделать несколько замечаний:

  1. SSSD конфигурация: Конфигурация SSSD достаточно стандартизирована для работы с AD. Обратите внимание, что параметр ldap_id_mapping = True позволяет использовать ID-отображение LDAP.
  2. Kerberos конфигурация: Настройки Kerberos в файле krb5.conf также выглядят корректно. Убедитесь, что домен и реалм указаны правильно.

Причины проблемы
Исходя из описания ситуации и ошибок, можно выделить несколько причин:

  1. Проблемы с разрешениями в AD: Часто причиной ошибки является то, что учетная запись компьютера (в данном случае сервер на CentOS) не имеет достаточных прав для чтения атрибутов учетных записей пользователей в Active Directory. Это может происходить из-за отключения наследования разрешений для учетных записей, когда они добавляются в группы, такие как "Domain Admins".
  2. Ошибка конфигурации SSSD или PAM: Вероятно, существуют проблемы в настройках управления доступом или учетными записями, которые могут препятствовать SSSD корректно получать информацию о пользователе.

Решение
Для решения проблемы рекомендуется выполнить следующие шаги:

  1. Проверка разрешений в AD:

    • Войдите в контроллер домена AD с учетной записью, обладающей правами администратора.
    • Перейдите в "Active Directory Users and Computers".
    • Найдите и щелкните правой кнопкой мыши на корневом узле домена.
    • Выберите PropertiesSecurityAdvanced.
    • Убедитесь, что группа "Authenticated Users" имеет разрешение List contents, Read all properties и Read permissions, применяемое к "Descendant User objects". Если разрешения отсутствуют, добавьте их.
  2. Проверка конфигурации SSSD:

    • Убедитесь, что служба SSSD запущена и работает корректно с помощью команд:
      systemctl restart sssd
      systemctl status sssd
    • Если изменения в разрешениях были внесены, перезагрузите службу SSSD, чтобы обновить кэш.
  3. Тестирование аутентификации:

    • После выполнения вышеуказанных шагов попробуйте снова выполнить команду ssssctl user-checks test для проверки доступности пользователя.
    • Также проверьте возможность аутентификации с помощью команды:
      id test
  4. Логи и отладка:

    • Проверьте логи SSSD для выявления дополнительных ошибок:
      tail -f /var/log/sssd/sssd.log
    • Анализируйте логи Kerberos для выявления возможных проблем с аутентификацией.

Заключение
Следуя вышеизложенным шагам, вы сможете устранить ошибку "id: user: no such user" при аутентификации пользователей Active Directory на CentOS 7. Обратите внимание на разрешения в Active Directory, так как они играют критическую роль в успешной интеграции. Убедитесь в корректности конфигурации SSSD и ведите мониторинг логов для своевременных выявлений и устранений проблем.

Оцените материал
Добавить комментарий

Капча загружается...