Гайд: как перенести пользователей в Астра Линукс, мигрируя с другой ОС или в домен - Часть 2

Полное руководство по миграции пользователей в Astra Linux: создание локальных профилей, перенос данных из Windows и интеграция с доменом ALD Pro.

2026.08.29                  


Гайд: как перенести пользователей в Астра Линукс, мигрируя с другой ОС или в домен - Часть 2Гайд: как перенести пользователей в Астра Линукс, мигрируя с другой ОС или в домен - Часть 2 Начало в Части 1

7. Архитектура доменной миграции

Типовая схема:

┌────────────────────┐
│  Доменный сервер   │
│  ALD Pro / FreeIPA │
│  LDAP, Kerberos,   │
│  DNS, пользователи │
└─────────┬──────────┘
          │
          │ сеть, DNS, Kerberos
          │
┌─────────┴──────────┐
│ Клиентские ПК      │
│ Астра Линукс       │
│ ввод в домен       │
│ вход доменных      │
│ пользователей      │
└────────────────────┘


Клиентский компьютер:

  1. Имеет корректное сетевое имя.
  2. Использует правильный DNS.
  3. Имеет синхронизированное время.
  4. Вводится в домен.
  5. Получает возможность пускать доменных пользователей.
  6. Создает домашние каталоги при первом входе.

8. Подготовка клиента Астра Линукс к вводу в домен

8.1. Настройка имени компьютера

Проверьте текущее имя:

hostnamectl

Установите правильное имя:

sudo hostnamectl set-hostname ws01.example.local

Проверьте /etc/hosts:

nano /etc/hosts

Пример:

127.0.0.1   localhost
127.0.1.1   ws01.example.local ws01

Если у машины есть реальный внутренний IP, можно указать его:

192.168.10.15   ws01.example.local ws01

8.2. Настройка DNS

Клиент должен использовать DNS-сервер домена.

Проверьте:

resolvectl status

или:

cat /etc/resolv.conf

Пример корректной настройки:

nameserver 192.168.10.10
search example.local

Если сеть управляется через NetworkManager, DNS обычно задается в настройках соединения.

Проверить, что доменное имя резолвится:

ping example.local
ping ald.example.local

Для FreeIPA/ALD Pro также полезно проверить службы:

nslookup -type=SRV _ldap._tcp.example.local
nslookup -type=SRV _kerberos._udp.example.local

8.3. Синхронизация времени

Для Kerberos критично точное время.

Проверьте время:

timedatectl

Включите синхронизацию:

sudo timedatectl set-ntp true

Проверьте службу времени:

systemctl status chrony

или:

systemctl status systemd-timesyncd

9. Ввод Астра Линукс в домен ALD Pro / FreeIPA

Дальнейшие команды предполагают, что домен работает на базе FreeIPA/ALD Pro.


9.1. Установка клиентских пакетов

Обновите пакеты:

sudo apt update

Установите необходимые пакеты:

sudo apt install freeipa-client sssd oddjob-mkhomedir

В зависимости от редакции и версии названия пакетов могут немного отличаться.

Если пакет не находится, выполните поиск:

apt search freeipa-client
apt search ipa-client
apt search sssd

9.2. Ввод в домен через ipa-client-install

Если DNS настроен правильно, часто достаточно:

sudo ipa-client-install --mkhomedir

Если автоматическое обнаружение не срабатывает, укажите параметры вручную:

sudo ipa-client-install \
    --domain=example.local \
    --realm=EXAMPLE.LOCAL \
    --server=ald.example.local \
    --mkhomedir

Где:

  • --domain — DNS-домен;
  • --realm — Kerberos-область, обычно заглавными;
  • --server — адрес сервера домена;
  • --mkhomedir — автоматически создавать домашний каталог при первом входе.

Во время установки система может запросить:

  • подтверждение обнаруженного домена;
  • учетную запись администратора домена;
  • пароль администратора.

9.3. Проверка ввода в домен

Проверка 1: конфигурация клиента.

sudo ipa-client-install --status

Если такой параметр не поддерживается в вашей версии, проверьте конфигурационные файлы:

cat /etc/ipa/default.conf

Пример содержимого:

[global]
basedn = dc=example,dc=local
realm = EXAMPLE.LOCAL
domain = example.local
server = ald.example.local
host = ws01.example.local

Проверка 2: видны ли доменные пользователи.

getent passwd ivanov@example.local

или:

id ivanov@example.local

Пример ожидаемого вывода:

uid=10001(ivanov@example.local) gid=10001(ivanov@example.local) groups=10001(ivanov@example.local)

Проверка 3: проверка аутентификации.

su - ivanov@example.local

или попробуйте войти в графическом режиме.


10. Автоматическое создание домашних каталогов

Если пользователь входит впервые, его домашний каталог должен быть создан автоматически.

Установите и включите oddjob-mkhomedir:



sudo apt install oddjob-mkhomedir
sudo systemctl enable --now oddjobd

В некоторых редакциях может потребоваться включить PAM-модуль создания домашнего каталога:

sudo pam-auth-update

В интерактивном меню включите пункт, связанный с созданием домашнего каталога, например:

Create home directory on login

или:

mkhomedir

Также можно проверить конфигурацию:

grep mkhomedir /etc/pam.d/*

11. Настройка домашних каталогов для доменных пользователей

По умолчанию домашний каталог может создаваться как:

/home/ivanov

или, при использовании нескольких доменов:

/home/example.local/ivanov

Настройка может выполняться в /etc/sssd/sssd.conf.

Пример:

[domain/example.local]
fallback_homedir = /home/%u

Если хотите разделять пользователей по доменам:

[domain/example.local]
fallback_homedir = /home/%d/%u

Где:

  • %u — имя пользователя;
  • %d — домен.

После изменения sssd.conf:

sudo chmod 600 /etc/sssd/sssd.conf
sudo systemctl restart sssd
sudo sss_cache -E

12. Перенос локального пользователя в доменного

Очень частая ситуация:

  • пользователь был локальным: /home/ivanov;
  • теперь он будет доменным: ivanov@example.local;
  • нужно сохранить файлы и настроить вход через домен.

12.1. Проверка доменного пользователя

Получите UID и GID доменного пользователя:

id ivanov@example.local

Пример:

uid=20001(ivanov@example.local) gid=20001(ivanov@example.local) groups=20001(ivanov@example.local)

12.2. Резервная копия старого домашнего каталога

sudo tar -czf /backup/home-ivanov-before-domain.tar.gz /home/ivanov

12.3. Смена владельца существующего каталога

Если домашний каталог останется /home/ivanov:

sudo chown -R 20001:20001 /home/ivanov
sudo chmod 700 /home/ivanov

Но лучше получить UID и GID автоматически:

DOMAIN_USER="ivanov@example.local"
HOME_DIR="/home/ivanov"

UID_NUM=$(id -u "$DOMAIN_USER")
GID_NUM=$(id -g "$DOMAIN_USER")

sudo chown -R "$UID_NUM:$GID_NUM" "$HOME_DIR"
sudo chmod 700 "$HOME_DIR"

12.4. Если доменный пользователь должен иметь другой домашний каталог

Например, локальный пользователь был ivanov, а доменный домашний каталог будет:

/home/example.local/ivanov

Тогда можно перенести данные:

DOMAIN_USER="ivanov@example.local"
OLD_HOME="/home/ivanov"
NEW_HOME="/home/example.local/ivanov"

UID_NUM=$(id -u "$DOMAIN_USER")
GID_NUM=$(id -g "$DOMAIN_USER")

sudo mkdir -p "$NEW_HOME"
sudo rsync -aHAX "$OLD_HOME/" "$NEW_HOME/"
sudo chown -R "$UID_NUM:$GID_NUM" "$NEW_HOME"
sudo chmod 700 "$NEW_HOME"

13. Массовый перенос локальных пользователей в доменные

Допустим, у вас есть список локальных пользователей, которые теперь стали доменными.

Создайте файл migration.csv:

ivanov,ivanov@example.local
petrov,petrov@example.local
sidorov,sidorov@example.local

Скрипт:

#!/bin/bash

INPUT_FILE="migration.csv"

while IFS=, read -r localuser domainuser; do

    if [ -z "$localuser" ] || [ -z "$domainuser" ]; then
        continue
    fi

    OLD_HOME="/home/$localuser"

    if [ ! -d "$OLD_HOME" ]; then
        echo "Домашний каталог $OLD_HOME не найден."
        continue
    fi

    if ! id "$domainuser" &>/dev/null; then
        echo "Доменный пользователь $domainuser не найден."
        continue
    fi

    UID_NUM=$(id -u "$domainuser")
    GID_NUM=$(id -g "$domainuser")

    echo "Мигрируем $localuser -> $domainuser"

    sudo chown -R "$UID_NUM:$GID_NUM" "$OLD_HOME"
    sudo chmod 700 "$OLD_HOME"

done < "$INPUT_FILE"

Сделайте исполняемым:

chmod +x migrate_to_domain.sh
./migrate_to_domain.sh



14. Создание пользователей в домене централизованно

Если домен на базе FreeIPA/ALD Pro, пользователей можно создавать через веб-интерфейс, командой ipa или через скрипты.


14.1. Создание одного пользователя в FreeIPA

Вариант с запросом пароля:

ipa user-add ivanov \
    --first=Иван \
    --last=Иванов \
    --displayname="Иван Иванов" \
    --email=ivanov@example.local \
    --password

Вариант со случайным паролем:

ipa user-add ivanov \
    --first=Иван \
    --last=Иванов \
    --displayname="Иван Иванов" \
    --email=ivanov@example.local \
    --random

Команда покажет одноразовый пароль или результат операции. Его нужно безопасно передать пользователю.


14.2. Массовое создание пользователей

Создайте файл ipa_users.csv:

ivanov,Иван,Иванов,ivanov@example.local
petrov,Петр,Петров,petrov@example.local
sidorov,Сидор,Сидоров,sidorov@example.local

Скрипт:

#!/bin/bash

INPUT_FILE="ipa_users.csv"

while IFS=, read -r login first last email; do

    if ipa user-show "$login" &>/dev/null; then
        echo "Пользователь $login уже существует."
        continue
    fi

    echo "Создаем пользователя $login"

    ipa user-add "$login" \
        --first="$first" \
        --last="$last" \
        --displayname="$first $last" \
        --email="$email" \
        --random

done < "$INPUT_FILE"

Важно:

Не храните пароли в открытых файлах. Лучше использовать --random, одноразовые пароли или защищенный процесс выдачи паролей.


14.3. Добавление пользователей в группы домена

Создать группу:

ipa group-add developers

Добавить пользователя:

ipa group-add-member developers --users=ivanov

Проверить:

ipa group-show developers

15. Настройка прав администратора в домене

Если нужно разрешить доменным пользователям выполнять sudo, создайте соответствующие правила.


15.1. Простой вариант: группа администраторов

В FreeIPA можно добавить пользователей в привилегированную группу, например admins, но это нужно делать осознанно.

ipa group-add-member admins --users=petrov

15.2. Настройка sudo через FreeIPA

Пример создания правила:

ipa sudorule-add allow_admin_commands
ipa sudorule-add-user allow_admin_commands --users=petrov
ipa sudorule-add-host allow_admin_commands --hosts=ws01.example.local

Разрешить все команды:

ipa sudorule-add-allow-command allow_admin_commands --sudocmds='all'

Проверить:

ipa sudorule-show allow_admin_commands

Продолжение в Части 3


Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.


Статью подготовил: Аверко Денис Сергеевич @Nymexis г. Омск (специалист по ЗИ)

Комментарии

Загрузка...
Если комментарии не загружаются, можете попробовать отключить блокировщик рекламы для этого сайта