- Как перенести пользователя linux
- Перенос аккаунтов пользователей со старого linux сервера на новый linux сервер
- Миграция пользовательских аккаунтов на новую систему
- Перенос пользователей с одной машины Linux на другую
- Смотрите так же:
- blog’o’sys
- Linux: Перенос системных пользователей и их домашниее директории на другой сервер
Как перенести пользователя linux
В данной статье приведён порядок действий при переносе пользователей linux с одного сервера на другой.Этот гайд подходит для большинства linux-дистрибутивов
Для этого потребуются простые команды, такие как tar, awk, scp и другие
Для переноса нам будут нужны следущие стандартные файлы:
/etc/passwd — содержит различные записи информации о каждом пользователе
/etc/shadow — содержит зашифрованные пароли и некоторую временную информацию
Перенос аккаунтов пользователей со старого linux сервера на новый linux сервер
/etc/group — определяет, как какой группе пользователей принадлежит пользователь
/etc/gshadow — shadow файл группы (содержит зашифрованные пароли групп)
Выполняем на старом сервере:
Создаём папку для старых файлов
Теперь копируем файлы через awk
# awk -v LIMIT=$UGIDLIMIT -F: ‘($3>=LIMIT) && ($3!=65534)’ /etc/passwd > /root/move/passwd.mig
# awk -v LIMIT=$UGIDLIMIT -F: ‘($3>=LIMIT) && ($3!=65534)’ /etc/group > /root/move/group.mig
# awk -v LIMIT=$UGIDLIMIT -F: ‘($3>=LIMIT) && ($3!=65534) ‘ /etc/passwd | tee — |egrep -f — /etc/shadow > /root/move/shadow.mig
# cp /etc/gshadow /root/move/gshadow.mig
При обслуживании серверов важно иногда делать такие бэкапы
Затем перекидываем файлы на новый сервер через scp:
Выполняем на новом сервере:
Сначала забэкапим существующих пользователей и пароли
# cd /path/to/location
# cat passwd.mig >> /etc/passwd
# cat group.mig >> /etc/group
# cat shadow.mig >> /etc/shadow
# /bin/cp gshadow.mig /etc/gshadow
. ВАЖНО. в консоли следует писать >> а не > , т.к. это разные операции .
Теперь перезагрузим систему
Как только linux перезагрузится, ваши пользователи будут работать, как на старом linux сервере.
P.S. если вы новичок в Linux`е, то делайте это на свой страх и риск 🙂
Миграция пользовательских аккаунтов на новую систему
Вам нужно скопировать все эти файлы со старой системы на новую.
Команды, выполняемые на старой системе:
Сначала нужно создать архив со всеми необходимыми файлами. Создаём каталог:
Теперь копируем /etc/passwd в /root/move/passwd.mig используя awk чтобы выбрать только пользовательские аккаунты.
# awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=65534)' /etc/passwd > /root/move/passwd.mig
# awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=65534)' /etc/group > /root/move/group.mig
# awk -v LIMIT=$UGIDLIMIT -F: ‘($3>=LIMIT) && ($3!=65534) ‘ /etc/passwd | tee — |egrep -f — /etc/shadow > /root/move/shadow.mig
Копируем /etc/gshadow (редко используется):
# cp /etc/gshadow /root/move/gshadow.mig
Создаём архивы папок /home и /var/spool/mail:
# tar -zcvpf /root/move/home.tar.gz /home
# tar -zcvpf /root/move/mail.tar.gz /var/spool/mail
- В Linux пользователи добавляемые в систему получают UID и GID из диапазонов, установленных дистрибутивом или администратором. Эти пределы в разных дистрибутивах различаются:
- RHEL/CentOS/Fedora Core: минимальное значение 500. максимальное — 65534. (/etc/libuser.conf).
- Debian and Ubuntu Linux: минимальное значение 100, максимальное — 29999. (/etc/adduser.conf).
Используйте scp или какой-либо другой способ для копирования /root/move на новую систему Linux:
# scp -r /root/move/* user@new.linuxserver.com:/path/to/location
Команды, выполняемые на новой системе:
Сначала создайте резервную копию всех учётных записей и паролей:
# mkdir /root/newsusers.bak
# cp /etc/passwd /etc/shadow /etc/group /etc/gshadow /root/newsusers.bakТеперь восстановите учётные записи со старой системы:
# cd /path/to/location
# cat passwd.mig >> /etc/passwd
# cat group.mig >> /etc/group
# cat shadow.mig >> /etc/shadow
# /bin/cp gshadow.mig /etc/gshadowПомните что нужно использовать >> (добавление) а не > (создани) при переносе учётных записей.
Теперь можно распаковать архив с домашними каталогами:
# cd / # tar -zxvf /path/to/location/home.tar.gz
Пардпоследний шаг: распаковка архива с почтой:
# cd / # tar -zxvf /path/to/location/mail.tar.gz
Теперь перезагрузитесь. Сразу после перезагрузки ваши учётные записи будут работать так же, как работали на старой системе:
Если вы переносите учётные записи между разными *nix-системами — некоторые команды изменятся. Но основная идея останется такой же.
Перенос пользователей с одной машины Linux на другую
У вас когда-нибудь была необходимость перенести текущих пользователей Linux с установки на другую? Это было бы простой задачей, если бы количество пользователей было небольшим. Но что происходит, когда количество пользователей исчисляется сотнями? Что вы делаете тогда? Если вы не используете LDAP, вы знаете, что вам придется перенести данные пользователей, пароли и т. Д. Со старого компьютера на новый. Вы не поверите, но это всего лишь вопрос нескольких команд — не обязательно простых, но это не так сложно, как вы думаете.
В этой статье я собираюсь показать вам, как выполнить эту миграцию, чтобы ваши пользователи Linux не потеряли свои данные, а их пароли остались.
Что мы переносим
- / etc / passwd — Содержит информацию о пользователе.
- / etc / shadow — Содержит зашифрованные пароли.
- / и т.д. / группа — Содержит информацию о группе.
- / etc / gshadow — Содержит зашифрованные пароли группы.
- / var / spool / mail — Содержит электронную почту пользователей (расположение будет зависеть от почтового сервера, который вы используете).
- /дом/ — Содержит данные пользователей.
К сожалению, эти файлы нельзя просто скопировать с одной машины на другую — это было бы слишком просто. Просто убедитесь, что вы правильно ввели следующие команды.
Исходная машина
Это команды, которые вам нужно будет запустить на машине, с которой вы переносите пользователей. Я предполагаю, что вы делаете это в системе, которая использует пользователя root (например, Fedora), поэтому все команды будут выполняться как root:
Вышеупомянутая команда создает каталог для всех перемещаемых файлов.
Приведенная выше команда устанавливает предел фильтра UID равным 500. ПРИМЕЧАНИЕ. Это значение будет зависеть от вашего дистрибутива. Если вы используете Red Hat Enterprise Linux, CentOS или Fedora, это значение показано в приведенной выше команде. Если вы используете Debian или Ubuntu, этот предел составляет 1000 (не 500).
awk -v LIMIT = $ UGIDLIMIT -F: ‘($ 3> = LIMIT) && ($ 3! = 65534)’ / etc / passwd> ~ / MOVE / passwd.mig
Приведенная выше команда копирует только учетные записи пользователей из/ etc / passwd (с помощью awk позволяет игнорировать системные учетные записи.)
awk -v LIMIT = $ UGIDLIMIT -F: ‘($ 3> = LIMIT) && ($ 3! = 65534)’ / etc / group> ~ / MOVE / group.miграмм
Приведенная выше команда копирует / etc / group файл.
awk -v LIMIT = $ UGIDLIMIT -F: ‘($ 3> = LIMIT) && ($ 3! = 65534) ’ / etc / passwd | тройник — | egrep -f — / etc / shadow> ~ / MOVE / shadow.mig
Приведенная выше команда копирует / etc / shadow файл.
cp / etc / gshadow ~ / MOVE / gshadow.mig
Приведенная выше команда копирует / etc / gshadow файл.
tar -zcvpf ~ / ПЕРЕМЕСТИТЬ / home.tar.gz / home
Вышеупомянутые архивы команд /дом.
tar -zcvpf ~ / MOVE / mail.tar.gz / var / spool / mail
Приведенная выше команда архивирует почтовый каталог. ПРИМЕЧАНИЕ. Если вы используете Sendmail, это правильный каталог. Если вы используете Postfix, этот каталог, скорее всего, будет / etc / postfix .
Теперь пришло время переместить все в ~ / ПЕРЕМЕСТИТЬ на новый сервер. Вы можете сделать это с помощью scp команда так:
scp -r ~ / ПЕРЕМЕЩЕНИЕ / * [электронная почта защищена]_OF_NEW_SERVER: / home / USER /
Где USER — это имя пользователя, которое вы будете использовать для отправки файла, а IP_OF_NEW_SERVER — это адрес нового сервера. ПРИМЕЧАНИЕ. Если этот сервер еще не подключен к сети, вы всегда можете скопировать эти файлы на флэш-накопитель и переместить их таким образом.
Целевая машина
Сейчас мы работаем над новым сервером. Следуйте этим командам (запускайте от имени пользователя root):
Приведенная выше команда создаст новый каталог, в котором будут храниться резервные копии текущих пользователей.
cp / etc / passwd / etc / shadow / etc / group / etc / gshadow ~ / newsusers.bak
Вышеупомянутая команда скопирует необходимые файлы в новый каталог резервной копии.
cd / ПУТЬ / К / КАТАЛОГ
кошка passwd.mig >> / etc / passwd
cat group.mig >> / etc / group
кошка shadow.mig >> / etc / shadow
/ bin / cp gshadow.mig / etc / gshadowПриведенные выше команды восстановят все файлы паролей в новой системе. ПРИМЕЧАНИЕ. Где / PATH / TO / DIRECTORY — это место, куда вы скопировали файлы в новую систему.
CD /
tar -zxvf / ПУТЬ / В / КАТАЛОГ /home.tar.gzПриведенные выше команды сначала изменят вас на / каталог, а затем распаковать заархивированный /дом каталог. ПРИМЕЧАНИЕ: Где / ПУТЬ / В / КАТАЛОГ это место, куда вы скопировали файлы в новую систему.
CD /
tar -zxvf / ПУТЬ / В / КАТАЛОГ /mail.tar.gzПриведенные выше команды сначала изменят вас на/ каталог, а затем распаковать заархивированный/ var / spool / mail каталог. ПРИМЕЧАНИЕ. Где / ПУТЬ / К / КАТАЛОГ — это место, куда вы скопировали файлы в новую систему.
Теперь вы можете перезагрузить вашу систему с пользователями на месте.
Смотрите так же:
blog’o’sys
Linux: Перенос системных пользователей и их домашниее директории на другой сервер
Перенос системных пользователей с домашними директориями проходит в два этапа:
Первый этап — необходимо перенести содержимое файлов /etc/group, /etc/passwd, /etc/shadow и /etc/gshadow.
Для сохранения используем скрипт:#!/bin/sh mkdir /root/move/ # Устанавливаем фильтр UID: export UGIDLIMIT=500 # Копируем данные через awk awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=65534)' /etc/passwd > /root/move/passwd.mig awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=65534)' /etc/group > /root/move/group.mig awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=65534) ' /etc/passwd | tee - |egrep -f - /etc/shadow > /root/move/shadow.mig cp /etc/gshadow /root/move/gshadow.mig
#!/bin/sh mkdir /root/move/ # Устанавливаем фильтр UID: export UGIDLIMIT=500 # Копируем данные через awk awk -v LIMIT=$UGIDLIMIT -F: ‘($3>=LIMIT) && ($3!=65534)’ /etc/passwd > /root/move/passwd.mig awk -v LIMIT=$UGIDLIMIT -F: ‘($3>=LIMIT) && ($3!=65534)’ /etc/group > /root/move/group.mig awk -v LIMIT=$UGIDLIMIT -F: ‘($3>=LIMIT) && ($3!=65534) ‘ /etc/passwd | tee — |egrep -f — /etc/shadow > /root/move/shadow.mig cp /etc/gshadow /root/move/gshadow.mig
Затем переносим экспортированные файлы на новый сервер
scp -r /root/move/* user>@new_server_ip>:/path/to/location new_server_ip>user>
И восстанавливаем их на новом сервере, предварительно сохранив оригинальные файлы
#!/bin/sh mkdir /root/users.orig # Сохраняем оригиналы cp /etc/passwd /etc/shadow /etc/group /etc/gshadow /root/users.orig #Импортируем скопированных пользователей cd /path/to/location cat passwd.mig >> /etc/passwd cat group.mig >> /etc/group cat shadow.mig >> /etc/shadow /bin/cp gshadow.mig /etc/gshadow
#!/bin/sh mkdir /root/users.orig # Сохраняем оригиналы cp /etc/passwd /etc/shadow /etc/group /etc/gshadow /root/users.orig #Импортируем скопированных пользователей cd /path/to/location cat passwd.mig >> /etc/passwd cat group.mig >> /etc/group cat shadow.mig >> /etc/shadow /bin/cp gshadow.mig /etc/gshadow
Второй этап копирование домашних директорий.
На исходном сервере запускаем команду rsync
rsync -avv --progress --recursive --times --perms --links --owner --group --exclude 'lost+found' /home/ root@servername>:/home/ servername>
rsync -avv —progress —recursive —times —perms —links —owner —group —exclude ‘lost+found’ /home/ root@
:/home/ Рубрика: *nix, Linux | Метки: awk, bash, linux, rsync, shell