В данной инструкции рассказывается о работе с пользователями 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", поскольку является просто символьной ссылкой на нее.
Версии команды 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".
Теперь мы можем проверить, что пользователь создан действительно с этим идентификатором.
Замечание: Обратите внимание, что 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.