- Как переместить учетную запись пользователя с сервера Linux на другой сервер
- Похожие сообщения
- Как установить сервер MongoDB 6.0 на Ubuntu 22.04
- Эмулятор терминала Xfce
- Jrnl Приложение журнала командной строки
- Терминальный мультиплексор Tmux
- Как читать метаданные файла записи и редактирования с помощью ExifTool
- Как использовать ChatGPT и DALL-E из командной строки с помощью ChatGPT-shell-cli
- Как перечислить структуру каталогов в древовидной диаграмме с помощью команды Tre
- Как использовать FTP для управления файлами вашего сайта в Windows
- Примите участие в неделе тестирования Fedora Linux для ядра 6.4
- Перенаправить вывод команды Linux в файл
- Миграция пользовательских аккаунтов на новую систему
- Перенос пользователей с одной машины Linux на другую
- Смотрите так же:
Как переместить учетную запись пользователя с сервера Linux на другой сервер
Эта статья покажет вам, как аккуратно перенести учетные записи пользователей с одного сервера Linux (например, Redhat или CentOS) на другой сервер и все связанные файлы.
Пользователем может быть человек, учетная запись, привязанная к физическому пользователю, или учетная запись, существующая для определенного приложения. Пользователей Linux можно разделить на два типа: один — системный пользователь, а другой — обычный пользователь или пользователь приложения. Значение идентификатора по умолчанию для системных пользователей — от 0 до 499, а значение идентификатора обычных пользователей — от 500 до 60 000.
Во-первых, мы должны понять файлы конфигурации, связанные с учетными записями пользователей.
• /etc/passwd содержит информацию о пользователях. • /etc/passwd содержит информацию о группе. • /etc/shadow содержит зашифрованный пароль пользователя. • /var/spool/mail содержит почту пользователя, которая хранится в этом файле. • /home/user содержит домашний каталог пользователя, поэтому он может содержать пользовательские данные.
При перемещении пользователей с одного сервера на другой вышеуказанные файлы очень важны, поэтому нам необходимо сделать резервную копию вышеуказанных файлов.
#mkdir accountbackup # Экспорт UGIDLIMIT = 500 # awk -v LIMIT = $UGIDLIMIT-F: ‘($3> = LIMIT) && ($3! = 65534)’ /etc/passwd>/root/accountbackup
Приведенная выше команда скопирует учетную запись, отфильтрованную файлом /etc/passwd, в /etc/accountbackup/passwd.olds.
Аналогично копируем выбранную группу в файл /etc/group:
#Awk -v LIMIT = $UGIDLIMIT -F: ‘($3> = LIMIT) && ($3! = 65534)’ /etc/group> /etc/accountbackup/group.olds
Теперь скопируйте файл тени:
#Awk -v LIMIT = $UGIDLIMIT -F: ‘($3> = LIMIT) && ($3! = 65534) ‘ /etc/passwd | тройник- | egrep -f- /etc/shadow> /root/accountbackup/shadow.old
Теперь создайте резервную копию домашнего каталога пользователя и почты пользователя:
#Tar -zcvpf /root/accountbackup/home.tar.gz/home
Теперь сделайте резервную копию почты пользователя:
#Tar -zcvpf /root/move/mail.tar.gz /var/spool/mail
Теперь вы получили файлы, связанные с учетной записью пользователя. Скопируйте все данные на флешку или новый сервер с помощью команды scp. Прежде чем приступить к миграции на новый сервер, обязательно сделайте резервную копию всех пользовательских файлов на новом сервере.
Восстановите данные на новый сервер.
## cat passwd.old >> / etc / passwd ## cat group.old >> / etc / group ## cat shadow.old >> / etc / shadow ## / bin / cp gshadow.old / etc / gshadow
Аналогичным образом восстановите данные пользователя и почту пользователя на новый сервер.
#Tar -zxvf /path/to/location/home.tar.gz#tar -zxvf /path/to/location/mail.tar.gz
В этой статье мы узнали, как перенести учетные записи пользователей с компьютера Linux на другой компьютер. Надеюсь, это поможет вам понять файлы, связанные с учетной записью пользователя, и все, что нужно переместить.
Похожие сообщения
Как установить сервер MongoDB 6.0 на Ubuntu 22.04
MongoDB — это популярная система управления базами данных NoSQL с открытым исходным кодом, известная своей гибкостью, масштабируемостью и простотой использования. В дополнение к…
Эмулятор терминала Xfce
Xfce Terminal — это бесплатное приложение-эмулятор терминала с открытым исходным кодом для Linux и, в первую очередь, для среды рабочего стола Xfce.…
Jrnl Приложение журнала командной строки
Jrnl — это бесплатное приложение журнала командной строки с открытым исходным кодом для Linux, Windows и MacOS. Это написано на…
Терминальный мультиплексор Tmux
Tmux — это бесплатный мультиплексор терминалов с открытым исходным кодом для Linux, OpenBSD, FreeBSD, NetBSD, macOS и Solaris. Используя tmux, вы…
Как читать метаданные файла записи и редактирования с помощью ExifTool
ExifTool — это бесплатный инструмент командной строки с открытым исходным кодом для работы с метаданными и независимая от платформы библиотека Perl для Linux, Windows и…
Как использовать ChatGPT и DALL-E из командной строки с помощью ChatGPT-shell-cli
ChatGPT-shell-cli — это бесплатный сценарий оболочки с открытым исходным кодом для использования ChatGPT и DALL-E из приложения командной строки терминала.…
Как перечислить структуру каталогов в древовидной диаграмме с помощью команды Tre
Tre — это бесплатная альтернатива команде дерева с открытым исходным кодом для Linux, Windows и MacOS. Используя Тре, вы…
Как использовать FTP для управления файлами вашего сайта в Windows
Протокол передачи файлов (FTP) — это сетевой протокол, обеспечивающий крупномасштабную передачу файлов по IP-сетям. Веб-сайт HTTP…
Примите участие в неделе тестирования Fedora Linux для ядра 6.4
Команда ядра работает над окончательной интеграцией ядра Linux 6.4. Эта версия была выпущена совсем недавно и…
Перенаправить вывод команды 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 каталог. ПРИМЕЧАНИЕ. Где / ПУТЬ / К / КАТАЛОГ — это место, куда вы скопировали файлы в новую систему.
Теперь вы можете перезагрузить вашу систему с пользователями на месте.
Смотрите так же: