Linux как скопировать пользователя

Обновлено: 05.07.2024

В данной инструкции рассказывается о работе с пользователями Linux через терминал (с применением командной строки).

Создание

useradd <имя пользователя> [опции]

* опции не являются обязательными при создании пользователя.

* в данном примере создается учетная запись dmosk.

Для учетной записи стоит сразу создать пароль:

* после ввода, система попросит ввести пароль дважды.

Ключи (опции)

Ключ Описание и примеры
-b Задает базовый каталог для домашнего каталога
useradd dmosk -b /var/home
-c Создает комментарий для описания учетной записи
useradd dmosk -c "Пользователя для управления системой"
-d Полный путь к домашнему каталогу пользователя
useradd dmosk -d /home/newuser
-D Позволяет показать или изменить настройки по умолчанию, которые будут применяться при последующем создании пользователей
useradd dmosk -Ds /bin/bash
-e Дата, после которой учетная запись устареет.
useradd dmosk -e 2017-12-31
-f Число дней, после которого учетная запись с устаревшим паролем будет заблокирована
useradd dmosk -f 0
-g Задает основную группу
useradd dmosk -g altternativegroup
-G Задает дополнительные группы
useradd dmosk -G wheel
-k Путь к источнику скелета (файлы с шаблонами для нового пользователя)
useradd dmosk -k /var/skel
-m При создании пользователя создать домашний каталог
useradd dmosk -m
-M Не создавать домашний каталог
useradd dmosk -M
-N Не создавать основную группу с таким же именем, как у пользователя
useradd dmosk -N
-o Разрешает создание учетной записи с повторяющимся UID
useradd dmosk -u 15 -o
-p Задает пароль
useradd dmosk -p pass
-r Системная учетная запись (без домашнего каталога и с идентификаторами в диапазоне SYS_UID_MIN - SYS_UID_MAX из файла /etc/login.defs)
useradd dmosk -r
-R Каталог, в который выполняется chroot
useradd dmosk -R /var/chroot/home
-s Путь до оболочки командной строки
useradd dmosk -s /bin/csh
-u Задает UID
useradd dmosk -u 666
-U Имя группы будет таким же, как у пользователя
useradd dmosk -U

Актуальный список ключей можно получить командой useradd -h.

Редактирование

usermod <имя пользователя> [опции]

usermod dmosk -G wheel

* эта команда добавит пользователя dmosk в группу wheel

Удаление

userdel <имя пользователя> [опции]

Блокировка

Можно заблокировать пользователя, не удаляя его из системы:

usermod -L <имя пользователя>

usermod -L dmosk

Чтобы разблокировать пользователя, вводим:

usermod -U <имя пользователя>

Работа с группами

1. Добавление группы:

groupadd <группа> [опции]

groupmod <группа> [опции]

3. Удаление группы:

groupdel <группа> [опции]

4. Добавление пользователя в группу:

Выполняется через команду usermod:

usermod -a -G <группы через запятую> <пользователь>

5. Удаление из группы:

Выполняется с помощью gpasswd:

gpasswd --delete <пользователь> <группы через запятую>

Список пользователей

Посмотреть список пользователей можно в файле /etc/passwd:

Мы увидим что-то на подобие:

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
.

Как правило, большая часть данных пользователей является системными — их UID меньше 1000 и больше 60000.

Более функциональная команда для отображения содержимого файла passwd — getent:

Можно найти пользователя по идентификатору:

getent passwd 1000

Получить список не системных пользователей:

Получить только список логинов не системных учетных записей:

Примеры работы с учетными записями

useradd

Создать пользователя, добавить его в группу и создать домашнюю директорию:

useradd dmosk -G wheel -m

Создать пользователя с определенными UID и GID (соответственно идентификаторы пользователя и группы):

useradd dmosk -u 900 -g 950

* группа с используемым идентификатором (в данном примере 950) уже должна быть создана заранее с использованием команды groupadd.

Создать пользователя и указать путь к домашней директории:

useradd dmosk -d /home/newdmosk

Создать учетную запись без возможности входа в систему:

useradd dmosk -s /sbin/nologin

usermod

Потребовать сменить пароль при следующем входе в систему:

chage -d 0 dmosk

Поменять пользователю основную группу:

usermod dmosk -g kdonewgroup

Задать пользователю дополнительную группу с правами root:

usermod dmosk -G sudo

Добавить пользователя в группу:

usermod -a -G group dmosk

* в данном примере мы добавим пользователя dmosk в группу group.

Сменить домашнюю директорию:

usermod -d /var/www/dmosk dmosk

* данной командой мы меняем для пользователя dmosk домашнюю директорию на /var/www/dmosk.

Вопрос: Как можно переместить/скопировать пользовательские аккаунты со старого сервера на новый. Cent OS Linux. Свежая установка.

Ответ: Задача не самая простая, но вполне решаемая при помощи стандартных команд типа tar, awk, scp и других. Это так же возможно даже если вы используете устаревшие дистрибутивы вроде RedHat 9 или Debian 2.x.

Следующие файлы/каталоги используются в Linux для управления пользователями:

    - содержит различную информацию по всем пользовательскм аккаунтам. - содержит зашифрованные пароли и в случае необходимости - время окончания срока действия пароля. - определяет группы, в которые входят пользователи.
  • /etc/gshadow - содержит зашифрованные пароли для групп.
  • /var/spool/mail - здесь обычно хранится пользовательская почта.
  • /home - здесь хранятся все пользовательские данные.

Вам нужно скопировать все эти файлы со старой системы на новую.

Команды, выполняемые на старой системе:

Сначала нужно создать архив со всеми необходимыми файлами. Создаём каталог:

Задаём лимит UID:

Теперь копируем /etc/passwd в /root/move/passwd.mig используя awk чтобы выбрать только пользовательские аккаунты.

Копируем файл /etc/group:

Копируем /etc/gshadow (редко используется):

Создаём архивы папок /home и /var/spool/mail:

Используйте scp или какой-либо другой способ для копирования /root/move на новую систему Linux:

Команды, выполняемые на новой системе:

Сначала создайте резервную копию всех учётных записей и паролей:

Теперь восстановите учётные записи со старой системы:

Помните что нужно использовать >> (добавление) а не > (создани) при переносе учётных записей.

Теперь можно распаковать архив с домашними каталогами:

Пардпоследний шаг: распаковка архива с почтой:

Теперь перезагрузитесь. Сразу после перезагрузки ваши учётные записи будут работать так же, как работали на старой системе:

Если вы переносите учётные записи между разными *nix-системами - некоторые команды изменятся. Но основная идея останется такой же.

Я новичок в Ubuntu и недавно начал использовать его на моем ПК. Я собираюсь заменить этот компьютер на новую машину. Я хочу перенести свои данные и настройки в неттоп. Какие аспекты я должен рассмотреть?

Очевидно, я хочу переместить мои данные. Что я пропускаю, если копирую только домашнюю папку?

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

Пожалуйста, примите во внимание, что новый компьютер является неттопом, который не имеет оптического привода и не позволяет мне подключить к нему старый диск SATA, поэтому любая передача данных должна осуществляться через домашнюю сеть (я могу иметь оба старая и новая машина включена и подключена к домашней локальной сети), и у меня есть USB-накопитель с ограниченной емкостью (2 ГБ).
Похоже, что это может ограничить общую применимость, но на самом деле это сделает его более общим.

Пользовательские настройки хранятся в папке Home по своему усмотрению. Итак, если вы скопируете свой /home/your-username на новый компьютер, у вас все будет хорошо .

. но есть предостережения:

  • Права доступа. Обычно «программы» (шеллскрипты, пользовательские программы сборки) помещаются в домашнюю папку. Чтобы сохранить разрешения, используйте --preserve=mode переключатель (используя cp ) или -p (используя tar )
  • UserID / GroupID. Даже если имена пользователей в обеих системах одинаковы, идентификатор пользователя не обязателен. Обычно это не проблема, но если у вас есть скрипты / программы / настройки, работающие с идентификатором пользователя, вы должны убедиться, что идентификатор пользователя и идентификатор группы должны быть одинаковыми в целевой системе.
    Вы можете найти текущий идентификатор пользователя и идентификатор группы, выполнив id . Например, чтобы изменить userID пользователя «your-username», запустите sudo usermod --uid 1234 your-username . Чтобы изменить groupID, вы должны запустить sudo groupmod --gid 1234 your-username .

Настройки (профиль Firefox, внешний вид, . ) часто хранятся в скрытых папках (или файлах). Скрытые папки / файлы имеют префикс с точкой, как .mozilla для Firefox (и других приложений Mozilla).

Поскольку безопасность не является проблемой, и вы хотите, чтобы копирование выполнялось как можно быстрее, я предлагаю комбинацию программ netcat и tar. Оба приложения установлены по умолчанию. Убедитесь, что брандмауэры на обоих компьютерах позволяют входить на порт назначения 8888 (исходный компьютер) и исходить на порт назначения 8888 (целевой компьютер). Разместите неттоп рядом с компьютером, чтобы вы могли быстро запускать команды.

На исходном компьютере должна быть установлена ​​традиционная программа netcat (она же швейцарский армейский нож, а не BSD). Для этого установите netcat-traditional пакет. Вы также можете настроить традиционную программу Netcat по умолчанию. Команды для установки netcat-Traditional и использования по умолчанию:

На исходном компьютере введите следующую команду в терминале (пока не нажимайте Enter):

  • tar это утилита для упаковки файлов
  • cz c создает такой упакованный файл ("tarball")
  • Тарбол сжимается с использованием алгоритма G Z ip для уменьшения размера файла.
  • -C/home $(whoami) меняет рабочий каталог на /home и помещает вашу папку с именем пользователя. Альтернативно, вы можете ввести свою your-username папку в архив
  • nc (netcat) используется для простой настройки соединений между машинами
  • -l : Режим прослушивания, позволяет другим машинам подключаться к текущей машине
  • -p 8888 : Прослушивает порт 8888 (случайно выбранный номер, это может быть любой другой номер, кроме 1024)
  • -w 10 : выход из netcat через 10 секунд тишины. Вы должны подключиться к этому исходному компьютеру в течение этого времени.

Теперь перейдите к целевому компьютеру (неттоп). Чтобы добавить файлы на целевой компьютер, введите (пока не запускайте):

  • 192.168.1.2 это IP-адрес исходного компьютера. Чтобы получить его IP-адрес, запустите: ifconfig на исходном компьютере
  • 8888 номер порта, введенный на исходном компьютере
  • xzp : e x обрабатывает сжатый ip-архив G Zс сохранением прав доступа.
  • -C/home : извлекает your-username папку в /home/your-username
  • При желании добавьте -v переключатель в команду tar для подробного извлечения, чтобы вы могли получить представление о прогрессе. Это может замедлить процесс копирования, поскольку каждый файл должен быть напечатан.

Теперь перейдите на исходный компьютер, нажмите Enter, чтобы запустить команду сервера. Быстро переключитесь на ваш неттоп и нажмите Enter, чтобы запустить команду клиента.

Если у вас есть какие-либо вопросы, просто используйте поле для комментариев ниже.

Читайте также: