В предыдущей статье был рассмотрен случай того, как быстро создать пользователя linux. Это удобно, когда пользователь сидит рядом и готов диктовать свои данные и вводить дважды пароль к своему аккаунту. Однако, при автоматическом создании пользователя данный случай вряд ли подходит. Хотелось бы, чтобы все данные могли быть сразу введены в систему из переменных. И такое возможно! Для этого есть масса опций команды useradd
, позволяющих передать системе все данные без диалога напрямую.
Помощь по команде useradd
и её опциям в linux
Для того, чтобы разобраться, какие опции у команды useradd
есть, нужно вызвать в консоли эту команду с опцией -h
. В итоге получим краткую инструкцию со списком всех опций:
root@amorale:~# useradd -h
Usage: useradd [options] LOGIN
useradd -D
useradd -D [options]
Options:
-b, --base-dir BASE_DIR base directory for the home directory of the
new account
-c, --comment COMMENT GECOS field of the new account
-d, --home-dir HOME_DIR home directory of the new account
-D, --defaults print or change default useradd configuration
-e, --expiredate EXPIRE_DATE expiration date of the new account
-f, --inactive INACTIVE password inactivity period of the new account
-g, --gid GROUP name or ID of the primary group of the new
account
-G, --groups GROUPS list of supplementary groups of the new
account
-h, --help display this help message and exit
-k, --skel SKEL_DIR use this alternative skeleton directory
-K, --key KEY=VALUE override /etc/login.defs defaults
-l, --no-log-init do not add the user to the lastlog and
faillog databases
-m, --create-home create the user's home directory
-M, --no-create-home do not create the user's home directory
-N, --no-user-group do not create a group with the same name as
the user
-o, --non-unique allow to create users with duplicate
(non-unique) UID
-p, --password PASSWORD encrypted password of the new account
-r, --system create a system account
-R, --root CHROOT_DIR directory to chroot into
-s, --shell SHELL login shell of the new account
-u, --uid UID user ID of the new account
-U, --user-group create a group with the same name as the user
-Z, --selinux-user SEUSER use a specific SEUSER for the SELinux user mapping
Команда useradd
и её опции в linux
Рассмотрим подробно, какие опции команды useradd
есть и что они делают.
-b
- Задание базовой папки для домашней директории нового пользователя нового аккаунта.
-c
- Добавляет данные GECOS нового пользователя (это про номер телефона и номер комнаты, где можно иногда встретить этого пользователя).
-d
- Создаёт рабочую папку пользователя для его нового аккаунта (этой опцией задаётся домашняя директория пользователя).
-D
- Показывает или меняет настройки создания нового пользователя в системе.
-e
- Задаёт срок жизни создаваемого аккаунта пользователя после истечения которого, аккаунт блокируется и пользователь не может войти в систему.
-f
- Задаёт время жизни пароля пользователя. После истечения которого, система потребует у пользователя сменить его пароль.
-g
- Задаёт группу или ID группы, в которую нужно поместить нового пользователя.
-G
- Позволяет создать список групп, в которые будет входить создаваемый пользователь.
-h
- Выдаст подсказку по команде
useradd
(ту, что я привёл выше). -k
- Задаёт папку альтернативного шаблона создания пользователя.
-K
- Перезапись данных по умолчанию, находящихся в
/etc/login.defs
-l
- Не вносить данные о создаваемом пользователе в системные логи. (Видимо опция для взломщиков системы.) =D
-m
- Создаёт домашнюю папку пользователя (даже если пользователь не выполнил вход в систему, а в настройках это требуется для создания директории пользователя).
-M
- Не создаёт домашнюю папку пользователя (если пользователь не выполнил вход в систему, а в настройках этого не требуется для создания директории пользователя). Или например, если пользователь — это процесс, которому не нужна домашняя директория.
-N
- Не создавать группу для этого пользователя с именем, как у этого пользователя. (Нефиг плодить сущности тогда, когда они не нужны.)
-o
- Разрешить создать пользователя с не уникальным именем. При этом в системе могут быть созданы пользователи с одинаковыми UID.
-p
- Задать пароль создаваемого пользователя.
-r
- Создание системного аккаунта.
-R
- Создать ещё одного админа (новый пользователь с правами
root
) -s
- Путь до shell для нового пользователя.
-u
- Задать UID (user ID) аккаунта нового пользователя. (Иначе он будет присвоен автоматически исходя из настроек системы и свободных ID)
-U
- Создать группу с именем таким же, как у создаваемого пользователя.
-Z
- Использовать специальные данные SEUSER для SELinux записи пользователя.
Цветом
я выделил опции, которые могут понадобиться для создания нового пользователя на сервере с виртуальными хостами для разных WWW-проектов.
Важное замечание
Пароль пользователя, передаваемый функции useradd
должен быть предварительно зашифрован. Как это сделать, подробно рассмотрено в → этой статье.
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)