Решение проблемы входа доменного пользователя на рабочей станции Альт Линукс Рабочая станция К
При переходе на отечественное и свободное программное обеспечение мы столкнулись с проблемой входа доменных пользователей в систему.
В организации работал старый контроллер домена на базе NethServer 7. С Astra Linux 1.7 проблем не возникло, система успешно вводилась в домен, и пользователи авторизовались без проблем. Однако в Альт Линукс Рабочая станция возникли трудности с авторизацией доменных пользователей.
💡 Присоединяйтесь к нашим сообществам!
Будьте в курсе новых статей, обновлений и полезных материалов:
Администраторы домена входили в систему без проблем, в отличие от обычных пользователей. Оказалось, что пользовательские директории создавались в /var/lib/nethserver/. Это расположение домашних каталогов не устраивало нас, но менять контроллер домена в процессе перехода было не лучшим решением. Поэтому мы нашли другой выход.
NethServer — это дистрибутив Linux на базе CentOS/Rocky Linux, ориентированный на малый и средний бизнес, который предоставляет готовые серверные решения с веб-интерфейсом для управления.
Исходные данные
- Операционная система: Альт Линукс Рабочая станция К
- Домен: school.lan
- Тестовый пользователь: ivanov.i
1. Диагностика перед началом работ
1.1. Получение прав супер пользователя
Запускаем консоль и переходим в режим суперпользователя:
su -
1.2. Проверка присоединения к домену
net ads testjoin
net ads info
1.3. Проверка статуса домена в SSSD
sssctl domain-status school.lan
1.4. Проверка доступности пользователя
wbinfo -u | grep -i ivanov
getent passwd ivanov.i@school.lan
getent passwd ivanov.i
1.5. Проверка текущего пути домашних директорий
Посмотреть текущие настройки домашних директорий:
getent passwd ivanov.i | cut -d: -f6
1.6. Проверка настроек PAM
Проверить, настроено ли автоматическое создание домашних директорий:
grep -r "pam_mkhomedir" /etc/pam.d/
1.7. Проверка служб аутентификации
systemctl status sssd winbind smb nmb
2. Решение
2.1. Создание резервных копий конфигурационных файлов
mkdir -p /root/save
cp /etc/sssd/sssd.conf /root/save/sssd.conf.backup.$(date +%Y%m%d_%H%M%S)
cp /etc/pam.d/su /root/save/su.backup.$(date +%Y%m%d_%H%M%S)
cp /etc/pam.d/system-auth /root/save/system-auth.backup.$(date +%Y%m%d_%H%M%S)
ls -la /root/save/
2.2. Настройка конфигурации SSSD
Редактирование конфигурационного файла SSSD:
mcedit /etc/sssd/sssd.conf
Содержимое файла /etc/sssd/sssd.conf:
[sssd]
config_file_version = 2
services = nss, pam
domains = school.lan
[nss]
[pam]
[domain/school.lan]
# Провайдеры для работы с Active Directory
id_provider = ad
auth_provider = ad
chpass_provider = ad
access_provider = ad
ad_domain = school.lan
# Настройки домашних директорий
override_homedir = /home/%u
fallback_homedir = /home/%u
# Настройки оболочки (shell)
override_shell = /bin/bash
default_shell = /bin/bash
# Настройки интеграции с Active Directory
ldap_id_mapping = True
use_fully_qualified_names = False
ad_gpo_ignore_unreadable = true
ad_gpo_access_control = permissive
ad_update_samba_machine_account_password = true
Установка правильных прав доступа:
chmod 600 /etc/sssd/sssd.conf
2.3. Настройка PAM для автоматического создания домашних директорий
echo "session required pam_mkhomedir.so skel=/etc/skel umask=0022" >> /etc/pam.d/su
echo "session required pam_mkhomedir.so skel=/etc/skel umask=0022" >> /etc/pam.d/system-auth
2.4. Перезапуск служб и очистка кэша
systemctl stop sssd
rm -rf /var/lib/sss/db/*
systemctl start sssd
systemctl status sssd
3. Тестирование решения
3.1. Проверка настроек пользователя
getent passwd ivanov.i | cut -d: -f6,7
3.2. Получение прав пользователя с созданием полноценной сессии
su - ivanov.i
3.3. Выполнение команды от имени пользователя
su - ivanov.i -c "whoami && echo 'Тестирование прошло успешно'"
3.4. Проверка создания домашней директории
ls -la /home/ivanov.i
4. Дополнительные команды диагностики
sssctl domain-status school.lan
getent passwd ivanov.i@school.lan
id ivanov.i
tail -f /var/log/sssd/sssd_school.lan.log
journalctl -u sssd -n 20
5. Пояснение ключевых параметров
Почему именно эти параметры решают проблему:
override_homedir = /home/%u- переопределяет путь домашней директории с/var/lib/nethserver/home/%uна стандартный/home/%u, что соответствует требованиям организацииoverride_shell = /bin/bash- заменяет ограниченныйsftp-serverна полноценную оболочку Bash, позволяя пользователям работать в командной строкеpam_mkhomedir.so- автоматически создает домашнюю директорию при первом входе пользователя с правильными правами доступаfallback_homedir = /home/%u- обеспечивает резервный путь на случай, если основной не сработает
6. Ожидаемый результат
После выполнения всех шагов пользователь ivanov.i должен успешно входить в систему с помощью команды:
su - ivanov.i
При первом входе автоматически создается домашняя директория /home/ivanov.i с файлами из /etc/skel/.
7. Действия при сохранении проблемы
- Проверить логи:
journalctl -u sssd -f - Убедиться в правильности присоединения к домену:
net ads testjoin - Проверить разрешение DNS:
nslookup school.lan - Проверить доступность контроллера домена
- Проверить синтаксис конфига SSSD:
sssd --genconf
Результат внедрения
После применения данного решения доменные пользователи успешно авторизуются в системе Альт Линукс Рабочая станция К с корректно созданными домашними директориями в /home/, что соответствует стандартам организации и упрощает администрирование. Проблема несовместимости со старым контроллером домена NethServer решена без замены инфраструктуры.
🚀 Понравилась статья?
Подписывайтесь на наши соцсети чтобы не пропустить новые полезные материалы!