Утилита useradd#

useradd – это утилита, позволяющая создавать новых пользователей и изменять информацию по умолчанию о новых пользователях.

При вызове без опции -D useradd создает новую учетную запись пользователя, используя значения, указанные в командной строке, а также значения по умолчанию из системы (подробнее см. в «Файл /etc/default/useradd»). В зависимости от параметров командной строки useradd может обновить системные файлы, а также создать домашний каталог нового пользователя и скопировать исходные файлы.

По умолчанию для нового пользователя также будет создана группа. Дополнительную информацию см. в описании опций -g, -N и -U ниже.

У useradd также есть псевдоним – утилита adduser.

Синтаксис useradd:

useradd <options> <username>

или

useradd -D <options>

Где <options> - возможные опции, а <username> – имя пользователя.

Часто используемые опции утилиты представлены в таблице ниже:

Опция

Описание

--badname

Разрешить имена, которые не соответствуют стандартным ограничениям

-b <base-dir>, --base-dir <base-dir>

Указать префикс <base-dir> по умолчанию при создании домашнего каталога нового пользователя, если не указана опция -d. <base-dir> объединяется с именем учетной записи для определения домашнего каталога. Если опция -b или --base-dir не указана, то useradd будет использовать базовый каталог, указанный в переменной HOME в /etc/default/useradd или /home по умолчанию

-d <home-dir>, --home-dir <home-dir>

Создать нового пользователя с указанием определенного каталога при создании домашнего каталога. Если указанный опции каталог не существует, то он будет создан (если не указана опция -M)

-D, --defaults

Изменить значения по умолчанию. При вызове только с опцией -D useradd отобразит текущие значения по умолчанию. При вызове с помощью -D и дополнительных опций useradd обновит значения по умолчанию для указанных параметров. Допустимыми параметрами для изменения по умолчанию являются:
-b, --base-dir;
-e, --expiredate;
-f, --inactive;
-g, --gid;
s,--shell

e <expire-date>, --expiredate <expire-date>

Указать дату, с которой учетная запись пользователя будет отключена. Если не указана, то useradd будет использовать дату истечения срока действия по умолчанию, указанную переменной EXPIRE в /etc/default/useradd, или пустую строку (без истечения срока действия)

-f <days_number>, --inactive <days_number>

Задать количество дней после превышения максимального срока действия пароля, в течение которых пользователь, как ожидается, заменит пароль. Значение хранится в файле shadow password. При вводе 0 пароль с истекшим сроком действия отключается без задержки. При вводе -1 соответствующее поле в файле паролей shadow будет пустым. Если <days_number> не указано, useradd будет использовать период бездействия по умолчанию, указанный переменной INACTIVE

-g <group>, --gid <group>

Указать имя или номер основной группы пользователя. Название группы должно существовать. Номер группы должен относиться к уже существующей группе. Если опция не указана, поведение useradd будет зависеть от переменной USERGROUPS_ENAB в /etc/login.defs. Если для этой переменной установлено значение yes (или в командной строке указана опция -U/--user-group), для пользователя будет создана группа с тем же именем, что и ее логин. Если переменная установлена в значение no (или в командной строке указана опция -N/--no-user-group), useradd установит для основной группы нового пользователя значение, указанное параметром переменной GROUP в /etc/default/useradd, или 1000 по умолчанию

-G <groups>, --groups <groups>

Указать список дополнительных групп, в которые также должен входить новый пользователь. Каждая группа отделяется от следующей запятой без пробелов. На группы распространяются те же ограничения, что и на группу, указанную с помощью опции -g

-k, --skel

Указать основной каталог, содержащий файлы и каталоги, которые необходимо скопировать в домашний каталог пользователя при создании. Опция действительна, только если указана опция -m/--create-home. Если опция -k/--skel не установлена, то базовый каталог определяется переменной SKEL в /etc/default/useradd или по умолчанию в /etc/skel. По возможности копируются списки управления доступом (ACL) и расширенные атрибуты

-m, --create-home

Указать необходимость создания домашнего каталога пользователя, если он не существует. Файлы и каталоги, содержащиеся в базовом каталоге (который можно определить с помощью опции -k), будут скопированы в домашний каталог. Если опция -m/--create-home не указана и не включен параметр CREATE_HOME, по умолчанию домашние каталоги не создаются. Каталог, в котором создается домашний каталог пользователя, должен существовать и иметь соответствующий контекст SELinux и разрешения. В противном случае домашний каталог пользователя не может быть создан или к нему нельзя получить доступ

s <path-to-shell>, --shell <path-to-shell>

Задать путь к оболочке входа пользователя. Без этой опции система будет использовать переменную SHELL, указанную в /etc/default/useradd, или, если она также не установлена, поле для оболочки входа в систему в /etc/passwd останется пустым

-N, --no-user-group

Указать useradd не создавать группу с тем же именем, что и у пользователя, а добавить пользователя в группу, указанную с помощью опции -g или переменной GROUP в /etc/default/useradd. Если не указаны опции -g, -N и -U, поведение useradd по умолчанию определяется переменной USERGROUPS_ENAB в /etc/login.defs

p <password>, --password <password>

Определить начальный пароль для учетной записи нового пользователя. <password>, указанный при использовании опции, будет зашифрован с помощью crypt (man -S 3 crypt). Без опции p/--password новая учетная запись пользователя без указания пароля будет заблокирована (отмечена знаком ! в /etc/shadow). В этом случае пользователь не сможет получить доступ к учетной записи или самостоятельно ввести пароль.

-u <uid>, --uid <uid>

Задать числовое значение идентификатора пользователя. Значение должно быть уникальным и неотрицательным. По умолчанию используется наименьшее значение ID, большее или равное UID_MIN, и большее, чем у любого другого пользователя

-r, --system

Создать системную учетную запись пользователя. Системные пользователи создаются без информации об устаревании в /etc/shadow, а их UID будут выбраны в диапазоне SYS_UID_MIN - SYS_UID_MAX, определенном в /etc/login.defs, вместо диапазона UID_MIN - UID_MAX (и их аналогов в GID для создания групп). useradd не создаст домашний каталог для такого пользователя, независимо от настройки по умолчанию в /etc/login.defs (CREATE_HOME). Необходимо указать опцию -m, если требуется создать домашний каталог для системной учетной записи

Внимание

Опцию p/--password используйте в командной строке с осторожностью, так как пароль (или зашифрованный пароль) будет виден пользователям, у которых есть право просматривать процессы.

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

Примеры использования#

Примеры использования useradd:

  • Для создания нового пользователя воспользуйтесь командой:

    sudo useradd <username>
    
  • Для создания нового пользователя с указанным идентификатором используйте команду:

    sudo useradd --uid id <username>
    
  • Для создания нового пользователя с указанной оболочкой используйте команду:

    sudo useradd --shell <path-to-shell> <username>
    
  • Для создания нового пользователя, которого необходимо добавить в дополнительные группы, воспользуйтесь командой:

    sudo useradd --groups group1,group2,... <username>
    

    Внимание

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

  • Для создания нового пользователя с домашним каталогом по умолчанию введите команду:

    sudo useradd --create-home <username>
    
  • Для создания нового пользователя с домашним каталогом, заполненным по умолчанию, воспользуйтесь командой:

    sudo useradd --skel <path-to-template_directory> --create-home <username>
    

    Где <path-to-template_directory> - путь до каталога, который содержит файлы и каталоги, подлежащие копированию. По умолчанию /etc/skel.

  • Для создания нового системного пользователя без домашнего каталога используйте команду:

    sudo useradd --system <username>