- Перенос пользователей с линукс
- Перенос аккаунтов пользователей со старого linux сервера на новый linux сервер
- 1. Перенос учётных записей пользователей в Calculate Directory Server¶
- Настройка серверов¶
- Настройка сервисов¶
- Зададим пароль для входа в домен Linux- и Windows-клиентов¶
- Настроим использование distfiles клиентами домена¶
- Настройка Samba¶
- Создадим базовые системные группы¶
- Добавим группы пользователей¶
- Настройка Jabber¶
- Добавим группы пользователей¶
- Добавим пользователей¶
- Перенести всех пользователей с одного сервака на другой
- Re: Перенести всех пользователей с одного сервака на другой
- Re: Re: Перенести всех пользователей с одного сервака на другой
- Re: Перенести всех пользователей с одного сервака на другой
- Re: Re: Re: Перенести всех пользователей с одного сервака на другой
- Re: Re: Re: Re: Перенести всех пользователей с одного сервака на другой
- Re: Re: Re: Re: Re: Перенести всех пользователей с одного сервака на другой
- Re: Re: Re: Re: Re: Перенести всех пользователей с одного сервака на другой
- Re: Re: Re: Re: Re: Re: Перенести всех пользователей с одного сервака на другой
- Re: Re: Re: Перенести всех пользователей с одного сервака на другой
- Re: Re: Re: Re: Перенести всех пользователей с одного сервака на другой
- Re: Re: Re: Re: Re: Re: Re: Перенести всех пользователей с одного сервака на другой
- Re: Re: Re: Re: Re: Re: Re: Re: Перенести всех пользователей с одного сервака на другой
- blog’o’sys
- Блог о системном администрировании и не только
- Linux: Перенос системных пользователей и их домашниее директории на другой сервер
- Миграция виртуального сервера Linux: перемещение пользователей, групп, почты и других настроек
- Перемещение пользователей и групп
- Создание файлов
- Добавление пользователей вручную
- Автоматическое добавление пользователей
- Перемещение почты и задач в новую систему
- Запуск сервисов
- Тестирование сайтов и сервисов
- Перемещение правил брандмауэра
- Настройка DNS
- Заключение
Перенос пользователей с линукс
В данной статье приведён порядок действий при переносе пользователей linux с одного сервера на другой.Этот гайд подходит для большинства linux-дистрибутивов
Для этого потребуются простые команды, такие как tar, awk, scp и другие
Для переноса нам будут нужны следущие стандартные файлы:
/etc/passwd — содержит различные записи информации о каждом пользователе
/etc/shadow — содержит зашифрованные пароли и некоторую временную информацию
Перенос аккаунтов пользователей со старого linux сервера на новый linux сервер
/etc/group — определяет, как какой группе пользователей принадлежит пользователь
/etc/gshadow — shadow файл группы (содержит зашифрованные пароли групп)
Выполняем на старом сервере:
Создаём папку для старых файлов
Ставим лимит UID фильтра:
Теперь копируем файлы через awk
При обслуживании серверов важно иногда делать такие бэкапы
Затем перекидываем файлы на новый сервер через scp:
Выполняем на новом сервере:
Сначала забэкапим существующих пользователей и пароли
. ВАЖНО. в консоли следует писать >> а не > , т.к. это разные операции .
Теперь перезагрузим систему
Как только linux перезагрузится, ваши пользователи будут работать, как на старом linux сервере.
Источник
1. Перенос учётных записей пользователей в Calculate Directory Server¶
Рассмотрим более подробно все шаги по переносу пользователей в Calculate Directory Server.
Настройка серверов¶
Перед настройкой обновите пакет calculate-server до последней версии:
Настройка сервисов¶
Перед настройкой сервисов проверьте, что у вас поднята сеть. Для настройки проводной сети воспользуйтесь следующим руководством.
В приведённом примере мы настроим и запустим все поддерживаемые сервисы:
Обратите внимание: при настройке вы можете указывать дополнительные параметры. Перед запуском вызовите справку по каждой команде:
Зададим пароль для входа в домен Linux- и Windows-клиентов¶
Настроим использование distfiles клиентами домена¶
Создайте каталог /var/calculate/remote/distfiles если его нет
затем выполните команды
Настройка Samba¶
Создадим базовые системные группы¶
Базовые системные группы могут понадобиться в том случае, если вы захотите ограничить доступ пользователей к определенным ресурсам компьютера. В этом случае системные Unix-группы должны быть продублированы в LDAP-сервере. При необходимости эту операцию можно выполнить позднее.
Более подробно о назначение каждой группы вы можете прочитать здесь.
Добавим группы пользователей¶
Как минимум у пользователей должна быть одна группа. Тем не менее, если вы впоследствии захотите разграничить доступ к данным пользователям различных отделов, группы — наиболее удобный способ организовать распределенный доступ.
В качестве примера взяты 5 групп:
Настройка Jabber¶
Вы можете организовать свой Jabber-сервер. В свете недавних событий с ограничением использования ICQ сторонними клиентами это неплохой способ избавиться от зависимости от одной компании. Jabber-сервер может с успехом использоваться и внутри вашей локальной сети для эффективного взаимодействия сотрудников. С целью предотвращения злоупотреблений рабочим временем на сервере предусмотрено логирование сообщений.
Добавим группы пользователей¶
Создав группы, пользователи автоматически будут размещены в них в вашем Jabber клиенте, что, безусловно, облегчит использование, а также будет служить отправной точкой знакомства со структурой компанией для новых сотрудников.
Добавим пользователей¶
Ниже приведен простой bash скрипт для добавления пользователей. Отредактируйте его, закомментировав неиспользуемые сервисы. Обратите внимание, что используемые в скрипте группы manager, audio, lp, plugdev, scanner и video должны быть предварительно созданы как описано выше.
В приведенном примере мы создаем два почтовых адреса, т.к. сервер находится в локальной сети и не является основным почтовым сервером.
Источник
Перенести всех пользователей с одного сервака на другой
Каким образом можно перенести всех пользователей с одного сервака на другой вместе с паролями?
Re: Перенести всех пользователей с одного сервака на другой
Перенести /etc/passwd*, /etc/shadow, настроить pam и прочесть документацию.
Re: Re: Перенести всех пользователей с одного сервака на другой
А чтобы перенеслись или хотя бы создались все домашние дериктории? /home/*
Re: Перенести всех пользователей с одного сервака на другой
И про группы не забыть: /etc/group*, /etc/gshadow*
Re: Re: Re: Перенести всех пользователей с одного сервака на другой
> А чтобы перенеслись или хотя бы создались все домашние дериктории? /home/*
А их можно просто скопировать. Если через NFS, то скорее всего все права, владелец/группа сохранятся, иначе написать скрипт на подобие:
cd /home
for i in *; do chown -R $i.группа $i; done
Re: Re: Re: Re: Перенести всех пользователей с одного сервака на другой
Еще проблема. На старом серваке стоит SusE 8, а новом 9-ка. В 8-ке идентификатопы у юзеров начинались с 500, а в 9-ке с 1000.
Re: Re: Re: Re: Re: Перенести всех пользователей с одного сервака на другой
Переносишь скриптом. Выцепляешь из passwd данные (uid, shell, homedir, group), заводишь пользователей с этими данными командой useradd -s -d -g user Выцепляешь хеши из shadow и вставляешь их в новый shadow.
Re: Re: Re: Re: Re: Перенести всех пользователей с одного сервака на другой
> Еще проблема.
Если в пересечений идентификаторов нет, то это не важно с какого номера начинается нумерация, можно смело переписывать passwd, group.
Re: Re: Re: Re: Re: Re: Перенести всех пользователей с одного сервака на другой
useradd -s -d -g user не создает домашнии директории! ;(
Re: Re: Re: Перенести всех пользователей с одного сервака на другой
Для переноса домашних директорий заверни весь /home (/usr/home или как там у тебя) tar’ом, скопируй tar на новый сервак и разверни в нужном месте.
Re: Re: Re: Re: Перенести всех пользователей с одного сервака на другой
Добавил в useradd еще и [-m] и папки вновь создаются, просто перенос старых не требовался, надо было просто создать хотя бы новые. Теперь надо перекинуть shadow. наверное так же скриптиком.
Re: Re: Re: Re: Re: Re: Re: Перенести всех пользователей с одного сервака на другой
>useradd -s -d -g user не создает домашнии директории! ;( Значит, это проблемы SuSe. В Alt Linux создает.
Re: Re: Re: Re: Re: Re: Re: Re: Перенести всех пользователей с одного сервака на другой
>useradd -s -d -g user не создает домашнии директории! ;(
Значит, это проблемы SuSe. В Alt Linux создает.
Источник
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)
Затем переносим экспортированные файлы на новый сервер
scp -r /root/move/* @ :/path/to/location
И восстанавливаем их на новом сервере, предварительно сохранив оригинальные файлы
#!/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@ :/home/
Источник
Миграция виртуального сервера Linux: перемещение пользователей, групп, почты и других настроек
В некоторых ситуациях возникает необходимость перенести свои данные и рабочую среду с одного сервера на другой. Возможно, со временем вы захотите сменить центр обработки данных и провайдера или перейти на более крупную и мощную машину.
В любом случае при переходе с одной системы в другую нужно учесть множество различных нюансов. Полностью восстановить функции и конфигурации может быть трудно, если вы не используете средства для управления конфигурацией (Chef, Puppet или Ansible). Кроме того, нужно не только переместить данные, но и настроить сервисы для работы на новой машине.
В предыдущем руководстве вы узнали, как написать сценарий для перемещения данных с исходного сервера на целевой. Теперь данные находятся на целевой машине. Осталось только переместить пользователей, группы, почту, crontab и другие настройки.
Перемещение пользователей и групп
Кроме программ и сервисов, переместить нужно также группы и пользователей.
Большинство сервисов, которым для запуска необходимы конкретные пользователи и группы, создают таких пользователей во время установки. Кроме того, на сервере есть пользователи, созданные вручную и другими методами.
Вся информация о пользователях хранится в нескольких файлах. Вот основные файлы:
- /etc/passwd: этот файл определяет пользователей и базовые атрибуты. Несмотря на его название, этот файл не содержит никакой информации о паролях. Он сосредоточен на именах пользователей, членах групп, домашних каталогах и оболочках по умолчанию.
- /etc/shadow: этот файл содержит фактическую информацию о паролях для каждого пользователя. Для каждого из пользователей, определенных в файле passwd, он содержит отдельную строку, а также хэшированные пароли и некоторую информацию о политике паролей.
- /etc/group: этот файл содержит информацию о доступных группах системы: имя и номер связанной группы, а также имена пользователей, которые используют ту или иную группу как дополнительную.
- /etc/gshadow: этот файл содержит список групп системы. В нем указаны группы, пароли, с помощью которых пользователи, не входящие в группу, могут получить к ней доступ, список администраторов и других пользователей.
Кажется, что можно просто скопировать эти файлы из исходной системы в целевую, однако это может вызвать осложнения, потому так делать не рекомендуется.
В частности, при этом может возникнуть конфликт идентификаторов групп и пользователей. Если программное обеспечение, создающее собственных пользователей и группы, устанавливается в другом порядке между системами, номера пользователей и групп могут отличаться, что станет причиной конфликта.
Лучше оставить большинство этих файлов как есть и настроить только необходимые значения. Сделать это можно несколькими способами.
Создание файлов
Независимо от метода, с помощью которого вы собираетесь добавить пользователей в систему, вам нужно сгенерировать список пользователей и групп, которых нужно переместить.
Создайте файл, связанный с каждым из перечисленных выше файлов. В этих новых файлах будет храниться вся необходимая информация о миграции.
Сначала выясните, какой лимит ID между обычными и системными пользователями установлен на вашем компьютере. Обычно он составляет 500 или 1000 в зависимости от системы. Если у вас есть обычный пользователь, вы можете просто проверить файл /etc/passwd:
Затем можно использовать это число (первый стандартный ID пользователя в третьем столбце), чтобы установить ограничение. Пользователи и группы ниже этого предела не будут экспортированы. Также нужно исключить учетную запись nobod», которой будет присвоен ID пользователя 65534.
Файл для синхронизации с /etc/passwd можно создать так:
awk -v LIMIT=limit# -F: ‘($3>=LIMIT) && ($3!=65534)’ /etc/passwd > /root/passwd.sync
Примечание: Вместо limit# укажите самый низкий ID обычного пользователя, который вы обнаружили в файле /etc/passwd.
Аналогичным образом можно создать файл для синхронизации с файлом group:
awk -v LIMIT=limit# -F: ‘($3>=LIMIT) && ($3!=65534)’ /etc/group > /root/group.sync
Также можно использовать определенный диапазон имен пользователей из файла /etc/passwd, чтобы получить нужные значения из файла shadow:
awk -v LIMIT=limit# -F: ‘($3>=LIMIT) && ($3!=35534)
Чтобы создать такой файл для /etc/gshadow:
awk -v LIMIT=limit# -F: ‘($3>=LIMIT) && ($3!=65534)
Теперь эти команды можно добавить в скрипт после обычной команды SSH и передать их на целевую машину:
ssh 111.222.333.444 «awk -v LIMIT=limit# -F: ‘($3>=LIMIT) && ($3!=65534)’ /etc/passwd > /root/passwd.sync»
ssh 111.222.333.444 «awk -v LIMIT=limit# -F: ‘($3>=LIMIT) && ($3!=65534)’ /etc/group > /root/group.sync»
ssh 111.222.333.444 «awk -v LIMIT=limit# -F: ‘($3>=LIMIT) && ($3!=35534)
ssh 111.222.333.444 «awk -v LIMIT=limit# -F: ‘($3>=LIMIT) && ($3!=65534)
rsync 111.222.333.444:/root/passwd.sync /root/
rsync 111.222.333.444:/root/group.sync /root/
rsync 111.222.333.444:/root/shadow.sync /root/
rsync 111.222.333.444:/root/gshadow.sync /root/
Добавление пользователей вручную
Если вы хотите просто добавить комментарий в скрипт и добавить пользователей вручную, используйте команды vipw vigr: они блокируют файл на время редактирования и защищают данные от повреждения. Чтобы отредактировать файл вручную, введите:
Флаг –s редактирует файл shadow, а флаг –g – файл group.
У вас может возникнуть идея просто добавить строки из файлов непосредственно в конец соответствующего файла в новой системе следующим образом:
cat /root/passwd.sync >> /etc/passwd
Если вы выбрали такой метод, помните: если один из скопированных ID уже принадлежит какому-то пользователю в новой системе, у вас возникнет конфликт ID.
Вы также можете добавить каждое имя пользователя с помощью системных инструментов. Команда useradd позволяет быстро создавать учетные записи пользователей в соответствии с данными исходного сервера:
useradd -s /path/to/shell -m -d /home/username -p password -G supplementary_groups
Вы можете сослаться на файлы *.sync и добавить их.
Автоматическое добавление пользователей
Также можно сгенерировать данные пользователей и групп в файле. После первого запуска скрипта их нужно закомментировать, потому что иначе скрипт попытается создать таких пользователей/группы при каждом последующем запуске.
Команда newusers может добавлять пользователей из файла. Она идеально подходит, но сначала нужно удалить ID пользователей и групп из файлов. Затем команда будет генерировать доступных пользователей и групп для новой системы.
Чтобы удалить ID групп и пользователей из passwd, введите:
Это добавит всех пользователей из файла в локальный файл /etc/passwd. Также команда автоматически создаст связанную с ним группу пользователей. Вам придется вручную добавить остальные группы, которые не связаны с пользователем, в файл /etc/group. Используйте файлы для миграции при редактировании соответствующих файлов.
Затем вы можете скопировать второй столбец из файла shadow.sync во второй столбец связанной учетной записи в новой системе. Это переместит пароли ваших учетных записей в новую систему.
Вы можете попытаться записать эти изменения в скрипт, но это одна из тех немногих задач, которые проще выполнить вручную.
Перемещение почты и задач в новую систему
Переместив пользователей, можно переместить в новую систему и их почту. Кроме того, нужно реплицировать cron job.
Сначала можно выполнить команду rsync для синхронизации каталога spool, в котором хранятся некоторые важные файлы.
ls /var/spool
anacron cron mail plymouth rsyslog
Каталог mail нужно переместить на целевой сервер. Для этого добавьте в скрипт такую команду rsync:
rsync -avz —progress 111.222.333.444:/var/spool/mail/* /var/spool/mail/
Также в каталоге /var/spool следует обратить внимание на каталог cron, в котором хранится cron и все задачи этого демона. Каталог crontabs содержит индивидуальные crontab-ы каждого пользователя.
Чтобы сохранить автоматизированные задачи всех пользователей, добавьте команду rsync:
rsync -avz —progress 111.222.333.444:/var/spool/cron/crontabs/* /var/spool/cron/crontabs/*
Это переместит crontab каждого пользователя в новую систему. Но есть другие crontab, которые нужно переместить. В каталоге /etc есть crontab и ряд других каталогов, содержащих информацию cron.
ls /etc | grep cron
anacrontab
cron.d
cron.daily
cron.hourly
cron.monthly
crontab
cron.weekly
Файл crontab содержит общесистемные данные cron. Другие элементы – это каталоги, содержащие другую информацию cron. Просмотрите их и решите, содержат ли они какую-либо информацию для вас.
Чтобы переместить информацию cron в новую систему, используйте команду:
rsync -avz —progress 111.222.333.444:/etc/crontab /etc/crontab
Переместив информацию cron в новую систему, вы должны убедиться, что все работает. Это делается в конце вручную.
Единственный способ сделать это правильно – войти в систему как каждый отдельный пользователь системы и вручную запустить команды в crontab. Это устранит проблемы с правами и путями.
Запуск сервисов
В конце сценарий должен перезапустить все сервисы.
К примеру, чтобы перезапустить стек LAMP на Ubuntu, нужно ввести:
service mysql restart
service apache2 re
start
service php5-fpm restart
Добавьте команды для перезапуска необходимых сервисов в конец скрипта.
Тестирование сайтов и сервисов
Добавив в скрипт все необходимые команды, протестируйте работу новой системы.
Проверить нужно довольно много областей. Во время тестирования обратите внимание на лог файлы, чтобы узнать, возникли ли какие-либо проблемы.
Для начала нужно проверить размеры каталогов. К примеру, если вы синхронизировали раздел /data, откройте этот каталог на исходной и на целевой машине и запустите команду:
cd /data
du -hs
471M .
Размер каталога должен быть примерно одинаковым на обеих машинах. Между исходной и новой системой допустимы небольшие различия. Если размеры сильно отличаются, вы должны выяснить, почему.
Затем вы можете проверить процессы, выполняемые на каждой машине. Для этого используйте ps:
ps auxw
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 27024 2844 ? Ss Feb26 0:00 /sbin/init
root 2 0.0 0.0 0 0 ? S Feb26 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S Feb26 0:00 [ksoftirqd/0] root 4 0.0 0.0 0 0 ? S Feb26 0:00 [kworker/0:0] root 5 0.0 0.0 0 0 ? S
Вы также можете реплицировать некоторые проверки, которые проводились на исходном сервере, чтобы узнать, скопирована ли среда на новый сервер:
netstat -nlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN 1564/dnsmasq
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 2886/cupsd
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 752/smbd
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 752/
. . .
Также можно использовать команду:
lsof -nPi
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
smbd 752 root 26u IPv6 9705 0t0 TCP *:445 (LISTEN)
smbd 752 root 27u IPv6 9706 0t0 TCP *:139 (LISTEN)
smbd 752 root 28u IPv4 9707 0t0 TCP *:445 (LISTEN)
smbd 752 root 29u IPv4 9708 0t0 TCP *:139 (LISTEN)
. . .
Вы должны проверить версии пакетов важных сервисов (как показано в первом руководстве серии). Способ сделать это зависит от системы.
Если вы переместили веб-сервер или стек LAMP, вам обязательно нужно проверить, работают ли сайты на новом сервере.
Для этого нужно просто откорректировать файл hosts (на локальном компьютере), указать в нем новый сервер. Затем вы можете проверить, правильно ли сервер принимает запросы и как работают все компоненты.
Метод работы с файлом hosts отличается в зависимости от используемой операционной системы. Если вы используете операционную систему на основе nix, например OS X или Linux, вы можете изменить файл hosts в своей локальной системе следующим образом:
sudo nano /etc/hosts
Добавьте в файл запись, которая свяжет доменное имя с IP-адресом нового сервера. Компьютер будет перехватывать запросы и направлять их в по новому IP.
111.222.333.444 www.domain.com
111.222.333.444 domain.com
Добавьте все поддомены (images.domain.com, files.domain.com и т.п.). Затем сохраните и закройте файл.
В системе OS X нужно выполнить следующую команду, чтобы сервер увидел обновления файла hosts:
sudo lookupd -flushcache
В Linux это произойдет автоматически.
В Windows нужно откорректировать файл C:\Windows\Wystem32\Drivers\etc\hosts. Добавить строки нужно так, как показано выше.
Отредактировав файл hosts на локальной рабочей станции, вы должны иметь доступ к тестовому серверу по доменному имени. Откройте сайт в браузере и проверьте все его функции. Убедитесь, что все компоненты могут взаимодействовать друг с другом.
После тестирования нужно удалить из файла hosts все только что добавленные строки.
Перемещение правил брандмауэра
Чтобы переместить правила брандмауэра в новую систему, обратитесь к руководству Перенос правил iptables на новый сервер.
Прежде чем перемещать правила в новую систему, просмотрите их и обновите все необходимые данные (IP-адреса, диапазоны и т.п.).
Настройка DNS
Переместив все необходимые данные, просмотрите свой скрипт и убедитесь, что следующий его запуск не сбросит все ваши изменения.
После этого запустите скрипт снова, чтобы переместить новые данные на целевой сервер.
После этого можно изменить DNS-серверы домена и указать новый сервер. Убедитесь, вместо ссылок на IP-адрес старого сервера вы указали информацию нового сервера.
Для обновления DNS-серверов потребуется некоторое время. После того, как все DNS-серверы обновят свои данные, вам, возможно, придется запустить скрипт миграции в последний раз, чтобы перенести все отклоненные запросы, которые поступили на исходный сервер.
Просмотрите команды MySQL и убедитесь, что вы не потеряете и не перепишете никаких данных.
Заключение
Если все прошло успешно, теперь все данные исходной системы находятся на целевом сервере. Внимательно следите за поведением нового сервера, чтобы своевременно обнаружить отклонения.
Миграция сервера – задача не из простых. Единственное, что поможет вам справиться с ней – это глубокое понимание исходной системы. Каждая система уникальна. Не пытайтесь выполнить миграцию, если у вас нет времени для устранения неполадок, которые могут возникнуть.
Источник