Как перенести пользователя 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

    Источник

    Читайте также:  Java paths get linux
Оцените статью
Adblock
detector