Перенос пользователей с одной машины Linux на другую

У вас когда-нибудь была необходимость перенести текущих пользователей Linux с установки на другую? Это было бы простой задачей, если бы количество пользователей было небольшим. Но что происходит, когда количество пользователей исчисляется сотнями? Что вы делаете тогда? Если вы не используете LDAP, вы знаете, что вам придется перенести данные пользователей, пароли и т. Д. Со старого компьютера на новый. Вы не поверите, но это всего лишь вопрос нескольких команд — не обязательно простых, но это не так сложно, как вы думаете.

В этой статье я собираюсь показать вам, как выполнить эту миграцию, чтобы ваши пользователи Linux не потеряли свои данные, а их пароли остались.

Что мы переносим

Список довольно простой:

  • / etc / passwd — Содержит информацию о пользователе.
  • / etc / shadow — Содержит зашифрованные пароли.
  • / и т.д. / группа — Содержит информацию о группе.
  • / etc / gshadow — Содержит зашифрованные пароли группы.
  • / var / spool / mail — Содержит электронную почту пользователей (расположение будет зависеть от почтового сервера, который вы используете).
  • /дом/ — Содержит данные пользователей.

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

Исходная машина

Это команды, которые вам нужно будет запустить на машине, с которой вы переносите пользователей. Я предполагаю, что вы делаете это в системе, которая использует пользователя root (например, Fedora), поэтому все команды будут выполняться как root:

mkdir ~ / ПЕРЕМЕСТИТЬ

Вышеупомянутая команда создает каталог для всех перемещаемых файлов.

экспорт UGIDLIMIT = 500

Приведенная выше команда устанавливает предел фильтра 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) {print $ 1}’ / 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):

mkdir ~ / newsusers.bak

Приведенная выше команда создаст новый каталог, в котором будут храниться резервные копии текущих пользователей.

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 каталог. ПРИМЕЧАНИЕ. Где / ПУТЬ / К / КАТАЛОГ — это место, куда вы скопировали файлы в новую систему.

Теперь вы можете перезагрузить вашу систему с пользователями на месте.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *