Linux создать пользователя с домашним каталогом

Содержание

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

Создание

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

* в данном примере создается учетная запись 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.

Все мы знаем об очень популярных в мире Linux командах "useradd" и "adduser". Время от времени администраторы системы используют их для создания пользовательских профилей с какими-либо специфическими свойствами или ограничениями.

Команда "useradd" в Linux или других системах на базе Unix — это низкоуровневая утилита, которая используется для добавления/создания пользовательского аккаунта. Команда "adduser" очень похожа на "useradd", поскольку является просто символьной ссылкой на нее.

Читайте также:  Быстрая зарядка для nissan leaf

Версии команды useradd в некоторых дистрибутивах Linux могут иметь небольшие отличия. Я полагаю, что вы прочитаете документацию своего дистрибутива, перед тем, как начнете экспериментировать.

Когда мы в терминале запускаем команду useradd, происходит следующее:

1. Она редактирует файлы /etc/passwd, /etc/shadow, /etc/group и/etc/gshadow, внося в них нового пользователя.
2. Создается и заполняется домашняя директория для нового пользователя.
3. Устанавливаются права доступа и владелец домашней директории.

Базовый синтаксис команды:

В этой статье мы покажем 15 наиболее часто встречающихся примеров использования команды useradd в Linux. Мы разделим наше повествование на две части:

Часть I: основы с 10 примерами;
Часть II: продвинутые возможности с 5 примерами.

Часть I — 10 базовых примеров использования команды "useradd"

1. Как добавить нового пользователя в Linux

Для создания/добавления нового пользователя используется команда "useradd" с аргументом "username", где username — это имя нового пользователя, которое будет использоваться для входа в систему.
За один раз можно добавить только одного пользователя, и его имя должно быть уникальным (то есть отличаться от имен других пользователей, уже существующих в системе).

Например, добавляем пользователя "techmint":

После выполнения данной команды, новый пользователь будет создан в заблокированном состоянии. Чтобы разблокировать пользовательский аккаунт, необходимо задать его пароль с помощью команды "passwd".

После создания нового пользователя его запись автоматически добавляется в пароль "/etc/passwd" и имеет следующий вид:

Она состоит из семи разделенных двоеточием полей, каждое из которых имеет свое назначение:

Username: имя пользователя, используемое для входа в систему. Может иметь длинц от 1 до 32 символов.
Password: пользовательский пароль (или символ x), который хранится в зашифрованном виде в файле /etc/shadow.
User ID (UID): каждый пользователь должен иметь User ID (UID) — идентификатор пользователя. По умолчанию UID 0 зарезервирован для root, а UID в диапазоне 1-99 для других предопределенных аккаунтов. UID в диапазоне 100-999 предназначены для пользовательских аккаунтов и групп.
Group ID (GID): идентификатор группы — Group ID (GID), хранится в файле /etc/group file.
User Info: это опциональное поле и оно позволяет вам задать дополнительную информацию о пользователе, например полное имя. Это поле заполняется с помощью команды "finger".
Home Directory: абсолютный путь к домашней директории пользователя.
Shell: абсолютный путь к командной оболочке пользователя, например /bin/bash.

2. Создание пользователя с нестандартным размещением домашней директории

По умолчанию команда "useradd" создает домашнюю директорию пользователя в /home и называет ее именем пользователя. Поэтому, например, для приведенного выше примера, мы увидим домашнюю директорию созданного нами пользователя "tecmint" в "/home/tecmint".
Однако это действие можно изменить с помощью опции "-d", указав после нее расположение новой домашней директории. Например, приведенная ниже команда создаст пользователя "anusha" с домашней директорией "/data/projects".

Вы можете просмотреть расположение домашней директории пользователя, а также другую информацию о нем:

3. Создание пользователя с заданным User ID

В Linux каждый пользователь имеет свой собственный UID (Unique Identification Number). По умолчанию при создании нового пользователя ему присваивается userid 500, 501, 502 и т.д.
Но мы можем создать пользователя с заданным userid с помощью опции "-u". Например, приведенная ниже команда создает пользователя "navin" с userid "999".

Читайте также:  Можно ли поставить whatsapp на компьютер

Теперь мы можем проверить, что пользователь создан действительно с этим идентификатором.

Замечание: Обратите внимание, что user ID должен отличаться от user ID пользователей, уже существующих в системе.

4. Создание пользователя с заданным Group ID

Аналогично, каждый пользователь имеет свой GID (Group Identification Number). Мы можем создавать пользователей с заданным group ID с помощью опции -g.

В этом примере мы добавим пользователя "tarunika" с заданными UID и GID:

Проверим, правильно ли сработала команда:

5. Добавление пользователя в несколько групп

Опция "-G" используется для добавления пользователя в дополнительные группы. Названия групп разделяются запятой без пробелов.
В приведенном ниже примере мы добавляем пользователя "tecmint" в группы admins, webadmin и developer.

Теперь проверим, в каких группах числится пользователь, с помощью команды id.

6. Добавление пользователя без домашней директории

В некоторых ситуациях мы не хотим, по соображениям безопасности, давать пользователям домашние директории. В таком случае, когда пользователь авторизуется в системе сразу после ее запуска, его домашней директорией будет root. Если такой пользователь использует команду su, то он авторизуется в домашней директории предыдущего пользователя.
Для создания пользователя без домашней директории используется опция "-M". Например, создадим пользователя "shilpi" без домашней директории.

Давайте проверим, что пользователь создан без домашней директории, с помощью команды ls:

7. Добавление пользовательского аккаунта с ограниченным сроком действия

По умолчанию, когда мы добавляем пользователя с помощью команды "useradd", его аккаунт не имеет сроков действия, то есть дата истечения сроков его жизни установена в 0 (никогда не истекает).
Однако мы можем установить дату истечения с помощью опции "-e", задав дату в формате YYYY-MM-DD. Это полезно при создании временных аккаунтов для каких-то конкретных задач.
В приведенном ниже примере мы создаем пользователя "aparna" со сроком жизни его аккаунта до 27 апреля 2015 года в формате YYYY-MM-DD.

Далее, проверяем сроки действия аккаунта и пароля с помощью команды "chage".

8. Создание пользователя с ограниченным временем действия пароля

Аргумент "-f" используется для того, чтобы задать количество дней, через которое пароль перестанет действовать. По умолчанию его значение равно -1, при этом время действия пароля не ограничивается.
В примере мы задаем для пользователя "tecmint" время действия пароля 45 дней с помощью опций "-e" и "-f".

9. Добавление различных комментариев к учетной записи

Опция "-c" позволяет вам добавлять произвольные комментарии, такие как полное имя пользователя или его номер телефона, в файл /etc/passwd. Например, следующая команда добавляет пользователя "mansi" и вставляет в поле комментария его полное имя Manis Khurana.

Вы можете просмотреть комментарии в файле ‘/etc/passwd’ с помощью команды:

10. Смена командной оболочки пользователя

Иногда мы добавляем пользователей, которые никогда не работают с командными оболочкми, или могут использовать другие командные оболочки. Мы можем задать отдельную оболочку для любого пользователя с помощью опции "-s".
В примере мы добавляем пользователя "tecmint" без командной оболочки, то есть задаем оболочку "/sbin/nologin".

Вы можете проверить командную оболочку пользователя с помощью команды:

Читайте также:  Духовые шкафы вирпул отзывы

Часть II: продвинутые возможности команды useradd

11. Добавление пользователя с заданными домашней директорией, командной оболочкой и комментариями

Приведенная ниже команда создает пользователя "ravi" с домашней директорией "/var/www/tecmint", командной оболочкой "/bin/bash" и дополнительной информацией о пользователе.

В этой команде опция "-m -d" создает пользователя с заданной домашней директорией, а опция "-s" задает командную оболочку, т.е. /bin/bash. Опция "-c" добавляет дополнительную информацию о пользователе, а опция "-U" создает/добавляет группу с тем же именем, что и у пользователя.

12. Добавление пользователя с заданными домашней директорией, командной оболочкой, комментариями и UID/GID.

Эта команда очень похожа на предыдущую, но здесь мы определяем оболочку как "/bin/zsh", и задаем UID и GID для пользователя "tarunika". Здесь "-u" задает новый UID пользователя (т.е. 1000), а "-g" задает GID (т.е. 1000).

13. Добавление пользователя с домашней директорией, без оболочки, с комментариями и User ID

Следующая команда очень похожа на две предыдущие, единственное отличие в том, что мы отключаем командную оболочку для пользователя "avishek" с заданным User ID (т.е. 1019). Это значит, что пользователь "avishek" не сможет авторизоваться в системе из командной оболочки.

14. Добавление пользователя с домашней директорией, skeleton directory, комментариями и User ID

Единственное, что меняется в этой команде, мы используем опцию "-k", чтобы задать skeleton directory, то есть /etc/custom.skel, а не умолчательную /etc/skel. Мы также используем опцию "-s", чтобы задать отдельную оболочку /bin/tcsh.

15. Добавление пользователя без домашней директории, без оболочки, без групп, и с комментариями

Приведенная ниже команда отличается от показанных ранее. Здесь мы используем опцию "-M", чтобы создать пользователя без домашней директории, и "-N", чтобы создать только пользователя (без группы). Аргумент "-r" используется для создания системного пользователя.

Команда выполняется от имени суперпользователя — root или пользователя, входящего в группу sudo.

useradd -d /home/admin -m ansibledmin -s /bin/bash

Таким образом добавляется пользователь ansibledmin. Для него создается домашний каталог /home/admin и определяется оболочка /bin/bash

Ключ -m означает, что домашний каталог будет создан сразу, если ключ не задать — каталог появится после первой авторизации пользователя в системе.

Авторизация в данном случае нужна только в интерактивном режиме. Т.е. su ansibledmin ей не будет. Сессия должна быть инициализирована именно ansibledmin пользователем (при старте машины)

Команда useradd повлечет добавление новой строки в файл /etc/passwd. В нем можно будет увидеть все данные по пользователю. В нем же можно изменить домашний каталог или shel.

Для нового пользователя нужно задать пароль

При вводе пароль не отображается, его нужно повторить дважды.

Если системный пользователь не нужен — root может его удалить выполнив

Вхождение из /etc/passwd пропадет.

Пользователи могут иметь в качестве оболочки /bin/false если авторизация не нужна. /bin/false задается изначально, например, для пользователя www-data из под которого обычно работает веб-сервер.

В примере создавался пользователь ansibleadmin, такое имя часто дается для того чтобы управлять не из-под root системой конфигурации Ansible.