- как перенести пользователей с сохранением UID/GID
- как перенести доменные группы с сохранением GID
Migrating_a_Samba_NT4_domain_to_a_Samba_AD_domain_(classic_upgrade) всё давным-давно есть...
Опишу здесь лишь пошаговое руководство по миграции с ALT домена (за подробностями обращайтесь по ссылке выше).
--
В качестве исходного сервера использовался
Кентавр 7.0.4Все проверки проводились на
Альт Сервер 8.2 [профиль: Сервер Samba-DC (контроллер AD)] +
Simply Linux 8.2.0Действия на исходном сервереИсходный домен:
base.ruСоздаём каталог для файлов:
mkdir -p /opt/base.ru/
Выгружаем имеющуюся LDAP базу пользователей в формате LDIF:
slapcat -b 'dc=base,dc=ru' -l /opt/base.ru/base.ru.ldif
Сохраняем дополнительно нужные файлы:
zip -r /opt/base.ru/openldap.zip /etc/openldap/
zip -r /opt/base.ru/samba.zip /var/lib/samba/
cp -a /etc/samba/smb.conf /opt/base.ru/
Переносим с исходного сервера каталог /opt/base.ru/ на целевой сервер в тот же каталог!Переходим на целевой серверДелаем полное обновление системы (рекомендуется):
apt-get update
apt-get dist-upgrade
update-kernel
reboot
Устанавливаем пакет netcmdplus (необязательно):
apt-get install netcmdplus
Создаём временные каталоги:
mkdir -p /opt/samba.PDC/dbdir/
mkdir -p /var/lib/ldap/bases/base.ru/
Раскладываем файлы с исходного сервера в нужные каталоги:
cp -a /opt/base.ru/smb.conf /opt/samba.PDC/
unzip -jd /opt/samba.PDC/dbdir/ /opt/base.ru/samba.zip \*secrets.tdb \*schannel_store.tdb \*gencache_notrans.tdb \*group_mapping.tdb \*account_policy.tdb
yes | unzip -jd /etc/openldap/ /opt/base.ru/openldap.zip \*slapd.conf \*base.ru\*.conf
Устанавливаем правильные права на файлы:
chgrp ldap /etc/openldap/slapd.conf /etc/openldap/*base.ru*.conf
Делаем симлинк (без него slapd не стартует, наверно, баг):
ln -sf sasl2-3 /usr/lib64/sasl2
Запускаем сервис slapd, чтобы он сформировал требуемые суффиксы, и тут же останавливаем:
service slapd start
service slapd stop
Приводим значение параметров realm и workgroup в файле /opt/samba.PDC/smb.conf к аналогичному виду:
[global]
realm = BASE.RU
workgroup = BASE
В файле /opt/base.ru/base.ru.ldif находим строчку:
dn: sambaDomainName=BASE.RU,dc=base,dc=ru
и приводим её к виду:
dn: sambaDomainName=BASE,dc=base,dc=ru
Выполняем импорт базы LDAP:
slapadd -l /opt/base.ru/base.ru.ldif
Устанавливаем правильные права на файлы:
chown ldap: -R /var/lib/ldap/bases/base.ru/
Запускаем сервис slapd:
service slapd start
Удаляем имеющуюся конфигурации Samba на новом сервере (желательно):
rm -f /etc/samba/smb.conf
rm -rf /var/lib/samba
rm -rf /var/cache/samba
mkdir -p /var/lib/samba/sysvol
Запускаем процесс миграции домена:
samba-tool domain classicupgrade --dbdir=/opt/samba.PDC/dbdir/ --realm=base.ru --dns-backend=SAMBA_INTERNAL /opt/samba.PDC/smb.conf
Примечание. При появлении сообщения в логе:
smbldap_search_domain_info: Problem during LDAPsearch: Timed out
Необходимо увеличить таймаут для операций с LDAP, добавив в файл /opt/samba.PDC/smb.conf в раздел [global]:
[global]
ldap timeout = 50
Подробности в теме https://forum.altlinux.org/index.php?topic=42265.msg335358#msg335358
Останавливаем ненужные сервисы:
service slapd stop
service bind stop
chkconfig bind off
Запускаем Samba:
service samba start
chkconfig samba on
Подчищаем за собой:
rm -rf /opt/base.ru/ /opt/samba.PDC/ /var/lib/ldap/
Не забываем назначить свой пароль Administrator:
samba-tool user setpassword administrator
На этом процесс миграции завершён, можно пробовать ввести клиентов в домен Active Directory.
Самое главное переносятся сами пользователи и пароли! ФИО почему-то по дороге потерялись, группы тоже в пролёте.
Смотреть надо про настройку sssd для указанных в базе uid.
uidNumber при миграции переносится, но команда id всё также показывает другие значения. Буду смотреть дальше...
PS. Если кто проверит у себя и отпишется о результате, буду рад.