TGViewer
NetworkAdmin.ru NetworkAdmin.ru @networkadminru · 4.7K subscribers
Post #589 2.26K
👤 Как перенести пользователей между серверами с сохранением UID, групп и паролей

Иногда возникает необходимость перенести локальных пользователей с одного linux-сервера на другой - при миграции, клонировании окружений или настройке тестовой копии. Но важно не просто скопировать имена, а сохранить UID, GID, пароли и групповые принадлежности, чтобы избежать конфликтов и сохранить доступы.

🌟 Что нужно сохранить

/etc/passwd - основная информация о пользователях
/etc/shadow - пароли пользователей
/etc/group - группы
/etc/gshadow - пароли групп (редко)
/home/ - директории пользователей и их данные (если нужно)


1️⃣ Фильтрация нужных пользователей. На проде часто много системных аккаунтов. Чтобы перенести только нужных людей, можно отфильтровать пользователей с UID > 1000 (или 500 - зависит от дистрибутива):


awk -F: '$3 >= 1000 && $3 < 60000 { print $1 }' /etc/passwd


2️⃣ Экспорт записей. Выполните на исходном сервере:


#пользователей
awk -F: '$3 >= 1000 && $3 < 60000' /etc/passwd > users.passwd

#пароли
awk -F: 'NR==FNR{a[$1]; next} $1 in a' users.passwd /etc/shadow > users.shadow

#группы
awk -F: '$3 >= 1000 && $3 < 60000' /etc/group > users.group
awk -F: 'NR==FNR{a[$1]; next} $1 in a' users.passwd /etc/gshadow > users.gshadow


Скопируйте файлы users.passwd, users.shadow, users.group, users.gshadow на новый сервер.

3️⃣ Импорт на новом сервере. На новом сервере:

Сначала делаем резервные копии оригинальных файлов:


cp /etc/passwd /etc/passwd.bak
cp /etc/shadow /etc/shadow.bak
cp /etc/group /etc/group.bak
cp /etc/gshadow /etc/gshadow.bak


Затем добавляем новые записи (убедитесь, что нет конфликтов UID/GID):


cat users.passwd >> /etc/passwd
cat users.shadow >> /etc/shadow
cat users.group >> /etc/group
cat users.gshadow >> /etc/gshadow


4️⃣ Копирование домашней директории


rsync -avz /home/ user@newserver:/home/


Не забудьте про владельцев:


chown -R username:groupname /home/username


Проверка


getent passwd имя_пользователя
id имя_пользователя
su - имя_пользователя


🌟 Если вы переносите пользователей с sudo-доступом, убедитесь, что их записи присутствуют в /etc/sudoers или /etc/sudoers.d/.

#linux #users

🧑‍💻 NetworkAdmin
  • 👍 9
  • ❤ 4
More from @networkadminru
  1. Oct 1, 2026✨ Systemd-команды, которые быстро дают информацию о системе У systemd есть несколько коман…
  2. Oct 1, 2026CENTI CONF: DevOps Day — митап по разработке и инженерным решениям ⚡️ 6 ноября Centicore G…
  3. Sep 30, 2026🖥 Get-ADUser: полезные примеры для работы с пользователями Active Directory Get-ADUser -…
  4. Sep 30, 2026👁‍🗨 Хочешь разбираться в информационной безопасности, а не просто копировать чужие коман…
  5. Sep 29, 2026🥱 Как быстро разобраться с дисками и маунтами Когда на сервере несколько дисков, LVM, отд…
  6. Sep 28, 2026🔎 TCP keepalive: как находить мертвые соединения до того, как они создадут проблему Иногд…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →