Предыстория: наша организация уже более 20 лет использует NIS для аутентификации UNIX / Linux, продолжаясь и по настоящее время. Windows и Active Directory появились в нашей организации около 16 лет назад, но AD никогда не использовался для аутентификации Linux (сейчас используется только RHEL / CentOS и Ubuntu Linux, все остальные * nix отошли на второй план). Во всех наших многочисленных ресурсах Linux мы по-прежнему используем традиционные диапазоны UID / GID для файлов пользователей.
Теперь руководство, наконец, продиктовало, что нам нужно перейти на AD для аутентификации Linux и прекратить использование NIS (здесь нет реальных аргументов;), и поэтому мы работаем над использованием SSSD для этого (который, кажется, является популярным [ only?] способ интегрировать аутентификацию Linux с AD.) Проблема, с которой мы сталкиваемся, заключается в том, как связать старые значения UID и GID на основе NIS для пользователей с их новой идентификацией на основе AD. Например, мой пользователь с AD-авторизацией в тестовой системе имеет это из getent passwd -s sss wdennis
:
root@vm01:~# getent passwd -s sss wdennis
wdennis:*:140001116:140000513:Will Dennis:/home/wdennis:/bin/bash
Очевидно, что UID / GID генерируется автоматически и не соответствует нашему текущие значения NIS.Проведя небольшое исследование AD и его схемы, я обнаружил, что пользовательские атрибуты включают следующее:
uidNumber
gidNumber
unixHomeDirectory
loginShell
Мой вопрос, может ли SSSD (или все, что мы используем для auth) каким-то образом использовать значения uidNumber
и gidNumber
для сопоставления существующего UID / GID файлов новому пользователю с авторизацией AD? Или как еще мы можем связать существующую информацию о владельце файла с пользователями с авторизацией AD? (Из-за большого количества файлов и машин, на которых они установлены, невозможно переместить
файлы в новые значения UID / GID ...)
Да, sssd может использовать атрибуты POSIX из AD вместо собственного сопоставления идентификаторов.
В разделе для домена AD в /etc/sssd/sssd.conf
просто задайте ldap_id_mapping = false
.
Если вы уже использовали автоматическое сопоставление идентификаторов sssd на компьютере, обязательно очистите его кэш перед перезапуском sssd.
rm -f /var/lib/sss/db/*
При использовании realm join
для присоединения нового компьютера к домену включите параметр командной строки --automatic-id-mapping=no
.