Всвязи с переносом
терминального сервера Debian 8 на другой гипервизор, была выполнена новая установка Debian 9.
После того, как сервер был установлен и настроен, встал вопрос о вводе его в
эксплуатацию и соответственно о переносе на него пользователей, прогонять их
снова через процедуру регистрации и очередной настройки приложений с нуля не
хотелось и я решил проделать замену сервера прозрачно для пользователей.
Сразу говорю что мой выбор инструментов - это лишь один из вариантов, обусловленный конкретной задачей.
Стартовые условия: Сервер, со свеже установленным Debian 9.3 в системе помимо рута создан привелигированный пользователь (пусть его зовут myadmin) с uid/guid=1000.
Приступаем:
В первую очередь генерируем на исходном сервере пару rsa ключей
на удаленный сервер:
теперь мы можем ходить на этот сервер по SSH без пароля.
На целевом сервере в папке пользователя создаем каталог для бэкапов:
для passwd:
этот блок необходимо удалить, плюс почистить то, что могло затесаться между вашими юзерами, так же отличный момент для зачистки неактуальных пользователей.
аналогично для shadow:
необходимо проследить чтоб пользователи, которых переносим не пересекались с пользователями целевого сервера.
После редактирования файлов выполняем:
пишем скрипт userbackup.sh:
Сразу говорю что мой выбор инструментов - это лишь один из вариантов, обусловленный конкретной задачей.
Стартовые условия: Сервер, со свеже установленным Debian 9.3 в системе помимо рута создан привелигированный пользователь (пусть его зовут myadmin) с uid/guid=1000.
Приступаем:
В первую очередь генерируем на исходном сервере пару rsa ключей
ssh-keygen
на все вопросы понажимать <Enter>, пароль не вводить, добавляем
публичный ключна удаленный сервер:
scp ~/.ssh/id_rsa.pub myadmin@remote_server:.ssh/authorized_keys2
если выдало ошибку, необходимо создать в папочке нашего удаленного
пользователя myadmin каталог .sshтеперь мы можем ходить на этот сервер по SSH без пароля.
На целевом сервере в папке пользователя создаем каталог для бэкапов:
mkdir ~/backups
с исходного сервера копируем на новый файлы c linux пользователями:sudo scp /etc/passwd myadmin@remote_server:~/backups
sudo scp /etc/shadow myadmin@remote_server:~/backups
Базу Samba пользователей:
sudo scp /var/lib/samba/private/passdb.tdb myadmin@remote_server:~/backups
sudo scp /var/lib/samba/private/secret.tdb myadmin@remote_server:~/backups
Конфиг файлы, например самбы:sudo scp /etc/samba/smb.conf myadmin@remote_server:~/backups
далее на целевом сервере выполняем:cd ~/backups
раскидываем конфиги по местам:
sudo cp smb.conf /etc/samba
кидаем пользователей самба на место:sudo cp *.tdb /var/lib/samba/private
теперь редактируем passwd и shadow - наша задача удалить всех системных
пользователейдля passwd:
этот блок необходимо удалить, плюс почистить то, что могло затесаться между вашими юзерами, так же отличный момент для зачистки неактуальных пользователей.
аналогично для shadow:
необходимо проследить чтоб пользователи, которых переносим не пересекались с пользователями целевого сервера.
После редактирования файлов выполняем:
sudo su
cat passwd >> /etc/passwd
cat shadow >> /etc/shadow
exit
для переноса домашних каталогов пользователей, на исходном сервере выполняем:
sudo mkdir /home/backup
cd /home/backup
sudo ls -d -1 /home/* | awk -F"\/" '{print $3}' > userlist.txt
редактируем userlist.txt, удаляя всех лишних(тех кого зачистили из passwd и
shadow, а так же папку backup)пишем скрипт userbackup.sh:
#!/bin/sh
for i in $(awk '{print $0}' /home/backup/userlist.txt); do
tar -cvzf "/home/backup/userBackup_$i.tar.gz" --exclude "/home/"$i"/.cache/*" \
--exclude "/home/"$i"/.local/share/Trash/*" "/home/"$i"/";
/usr/bin/scp "/home/backup/userBackup_$i.tar.gz" "myadmin@192.168.0.213:backups";
done
Делаем его исполняемым:
chmod +x userbackup.sh
запускаем:После того, как скрипт отработает, мы на целевом сервере, в папке backups увидим архивы с домашними каталогами пользователей. Копируем наш userlist.txt на целевой сервер:sudo ./userbackup.sh
На целевом сервере делаем скрипт users_unbackup.sh:sudo scp /home/backups/userlist.txt myadmin@remote_server:~/backups
Делаем его исполняемым:#!/bin/sh for i in $(awk '{print $0}' /home/myadmin/backups/userlist.txt); do cd / tar -xvf /home/myadmin/backups/userBackup_$i.tar.gz chown -R $i:users $i done
Запускаем:chmod +x users_unbackup.sh
Все, пользователи перенесены!sudo ./users_unbackup.sh
Комментариев нет:
Отправить комментарий