Руководства по командной строке

Man » adduser Manual online - подробная онлайн-документация для страницы руководства adduser

🌍
adduser, addgroup - добавление или изменение пользователей или групп

СИНТАКСИС

adduser [--add-extra-groups] [--allow-all-names] [--allow-bad-names] [--comment comment]
[--conf file] [--debug] [--disabled-login] [--disabled-password] [--firstgid id]
[--firstuid id] [--gid id] [--home dir] [--ingroup group] [--lastgid id] [--lastuid id]
[--no-create-home] [--no-copy-skel] [--shell shell] [--quiet] [--uid id] [--verbose]
[--stdoutmsglevel prio] [--stderrmsglevel prio] [--logmsglevel prio] user

adduser --system [--comment comment] [--conf file] [--debug] [--gid id] [--group] [--home dir]
[--ingroup group] [--no-create-home] [--no-copy-skel] [--shell shell] [--uid id]
[--quiet] [--verbose] [--stdoutmsglevel prio] [--stderrmsglevel prio]
[--logmsglevel prio] user

adduser --group [--conf file] [--debug] [--firstgid id] [--gid ID] [--lastgid id] [--quiet]
[--verbose] [--stdoutmsglevel prio] [--stderrmsglevel prio] [--logmsglevel prio] group

addgroup [--conf file] [--debug] [--firstgid id] [--gid ID] [--lastgid id] [--quiet] [--verbose]
[--stdoutmsglevel prio] [--stderrmsglevel prio] [--logmsglevel prio] group

addgroup --system [--gid id] [--conf file] [--quiet] [--verbose] [--stdoutmsglevel prio]
[--stderrmsglevel prio] [--logmsglevel prio] group

adduser [--conf file] [--debug] [--quiet] [--verbose] [--stdoutmsglevel prio]
[--stderrmsglevel prio] [--logmsglevel prio] user group

adduser --help

adduser --version

ОПИСАНИЕ

adduser и addgroup добавляют пользователей и группы в систему в соответствии с параметрами командной строки и информацией о конфигурации, содержащейся в файле /etc/adduser.conf. Это более специфичные для Debian надстройки над программами useradd, groupadd и usermod, которые более универсальны для разных дистрибутивов. По умолчанию adduser и addgroup выбирают значения UID и GID, соответствующие политике Debian, создают домашний каталог с базовой конфигурацией, запускают пользовательский скрипт и имеют другие функции.

adduser и addgroup предназначены для использования в качестве уровня политик, упрощающего для сопровождающих пакеты и локальных администраторов создание локальных системных учетных записей в соответствии с тем, как этого ожидает Debian, снимая необходимость адаптироваться к, вероятно, меняющимся спецификациям политики Debian. adduser --system требует особого внимания, поскольку для этого требуется всего один вызов в скриптах сопровождающих пакетов, без каких-либо условных операторов или других дополнительных действий.

adduser учитывает различие между динамически выделяемыми системными пользователями и группами и динамически выделяемыми учетными записями пользователей, о котором говорится в политике Debian, глава 9.2.2.

Для полного списка и объяснений всех опций см. раздел ОПЦИИ.

`adduser` и `addgroup` можно запускать в одном из пяти режимов:

Добавление обычного (несистемного) пользователя

Если команда вызывается с одним не-опциональным аргументом и без опций --system или --group, adduser добавит обычного пользователя, то есть динамически созданную учетную запись в смысле политики Debian. Обычно это называют несистемным пользователем в adduser.

`adduser` выберет первый доступный UID из диапазона, указанного в переменных `FIRST_UID` и `LAST_UID` в файле конфигурации. Этот диапазон можно изменить с помощью опций `--firstuid` и `--lastuid`. Наконец, UID можно установить вручную с помощью опции `--uid`.

По умолчанию каждому пользователю создается соответствующая группа с тем же именем. Это обычно называют пользовательскими группами и позволяет легко поддерживать каталоги, доступные для записи группой, путем размещения соответствующих пользователей в новой группе, установки бита set-group-ID в каталоге и обеспечения того, чтобы все пользователи использовали umask 002.

Для пользовательской группы `adduser` выберет первый доступный GID из диапазона, указанного в переменных `FIRST_GID` и `LAST_GID` в файле конфигурации. Этот диапазон можно изменить с помощью опций `--firstgid` и `--lastgid`. Наконец, GID можно установить вручную с помощью опции `--gid`.

Взаимодействие между `USERS_GID`, `USERS_GROUP` и `USERGROUPS` подробно описано в `adduser.conf(5)`.

Основную группу нового пользователя также можно изменить из командной строки с помощью опций --gid или --ingroup, чтобы задать группу по ID или имени, соответственно. Кроме того, пользователей можно добавить в одну или несколько дополнительных групп, определенных как EXTRA_GROUPS, либо установив ADD_EXTRA_GROUPS в 1 в файле конфигурации, либо передав --add-extra-groups в командной строке.

`adduser` скопирует файлы из `/etc/skel` в домашний каталог и предложит ввести поле комментария и пароль, если эти функции не были отключены/изменены в командной строке.

UID, комментарий, домашний каталог и оболочка могут быть предварительно определены с помощью опций `UID_POOL` и `GID_POOL`, описанных в `adduser.conf(5)`.

Добавление системного пользователя

Если команда вызывается с одним не-опциональным аргументом и опцией --system, adduser добавит динамически созданного системного пользователя, который часто называют просто системным пользователем в контексте пакета adduser.

`adduser` выберет первый доступный UID из диапазона, указанного в переменных `FIRST_SYSTEM_UID` и `LAST_SYSTEM_UID` в файле конфигурации. Этот диапазон можно изменить с помощью опции `--uid`.

По умолчанию системным пользователям назначается группа `nogroup` в качестве основной. Чтобы назначить уже существующую группу в качестве основной, используйте опции `--gid` или `--ingroup`. Если передана опция `--group` и группа с таким же именем еще не существует, она будет создана с тем же ID.

Если не указан домашний каталог, домашний каталог по умолчанию для нового системного пользователя — /nonexistent. Этот каталог не должен существовать ни в одной системе Debian, и adduser никогда не будет создавать его автоматически.


Если домашний каталог указан с помощью опции --home, и этот каталог уже существует (например, если пакет поставляется с файлами в этом каталоге), команда adduser не устанавливает владельца каталога на вновь созданного пользователя. Установка владельца может переопределить решение локального администратора, а сообщение об этом нарушит тишину, которую adduser поддерживает во время установки пакета. Если вы используете adduser --home в скриптах обслуживания пакета, возможно, потребуется выполнить явную рекурсивную команду chown для домашнего каталога после вызова adduser.

Если оболочка не указана явно с помощью опции --shell, у нового системного пользователя оболочка будет установлена в /usr/sbin/nologin. Команда adduser --system не устанавливает пароль для новой учетной записи. Если команда adduser --system вызвана для учетной записи, у которой уже есть пароль, это будет ошибкой. Конфигурационные файлы, используемые в качестве шаблонов, не копируются.

Другие опции будут работать так же, как и при создании обычного пользователя. Файлы, на которые указывают UID_POOL и GID_POOL, также будут учитываться.

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

Если команда adduser вызывается с опцией --group и без опции --system, или вызывается команда addgroup, будет добавлена группа пользователей.

Динамически выделенная системная группа, которая часто сокращенно называется системной группой в контексте пакета adduser, будет создана, если команды adduser --group или addgroup вызваны с опцией --system.

GID будет выбран из соответствующего диапазона, указанного в файле конфигурации для GID ( FIRST_GID, LAST_GID, FIRST_SYSTEM_GID, LAST_SYSTEM_GID). Чтобы переопределить этот механизм, можно указать GID с помощью опции --gid.

Для несистемных групп диапазон, указанный в файле конфигурации, может быть переопределен с помощью опций --firstgid и --lastgid.

Группа создается без участников.

Добавление существующего пользователя в существующую группу

Если команда вызвана с двумя аргументами, не являющимися опциями, команда adduser добавит существующего пользователя в существующую группу.

ОПЦИИ

Различные режимы adduser допускают различные опции. Если для опции не указаны допустимые режимы, она принимается во всех режимах.

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

--add-extra-groups
Добавить нового пользователя в дополнительные группы, определенные в настройке `EXTRA_GROUPS` файла конфигурации. Старое написание `--add_extra_groups` устарело и будет поддерживаться только в Debian bookworm. Допустимые режимы: `adduser`, `adduser --system`.

--allow-all-names
Разрешить любое имя пользователя и группы, поддерживаемое базовой командой [useradd]({filename}../../useradd)(8). См. РАЗДЕЛ "ДОПУСТИМЫЕ ИМЕНА" ниже. Допустимые режимы: `adduser`, `adduser --system`, `addgroup`, `addgroup --system`.

--allow-bad-names
Отключить проверку имени с использованием `NAME_REGEX` и `SYS_NAME_REGEX`. Применяется только более слабая проверка допустимости имени. См. РАЗДЕЛ "ДОПУСТИМЫЕ ИМЕНА" ниже. Допустимые режимы: `adduser`, `adduser --system`, `addgroup`, `addgroup --system`.

--comment comment
Задает поле комментария для создаваемой записи. adduser не будет запрашивать эту информацию, если указана эта опция. Это поле также известно под названием GECOS и содержит информацию, которая используется командой finger(1). Раньше это была опция --gecos, которая устарела и будет удалена после выхода Debian bookworm. Допустимые режимы: adduser, adduser --system.

--conf file
Использовать файл вместо /etc/adduser.conf. Можно указать несколько опций --conf.

--debug
Синоним --stdoutmsglevel=debug. Устарела.

--disabled-login
--disabled-password
Не запускать [passwd]({filename}../../passwd)(1) для установки пароля. В большинстве случаев вход все равно возможен (например, с использованием SSH-ключей или через PAM), что выходит за рамки возможностей adduser. --disabled-login дополнительно установит оболочку в /usr/sbin/nologin. Допустимый режим: adduser.

--firstuid ID
--lastuid ID
--firstgid ID
--lastgid ID
Переопределяет первый UID / последний UID / первый GID / последний GID в диапазоне, из которого выбирается UID (FIRST_UID, LAST_UID, FIRST_GID и LAST_GID, FIRST_SYSTEM_UID, LAST_SYSTEM_UID, FIRST_SYSTEM_GID и LAST_SYSTEM_GID в файле конфигурации). Если группа создается как пользовательская группа, --firstgid и --lastgid игнорируются. Группа получает тот же ID, что и пользователь. Допустимые режимы: adduser, adduser --system, для --firstgid и --lastgid также addgroup.

--force-badname
--allow-badname
Это устаревшие формы --allow-bad-names. Они будут удалены во время цикла выпуска Debian 13.

--gid GID
При создании группы эта опция устанавливает номер GID новой группы в GID. При создании пользователя эта опция устанавливает номер основного GID нового пользователя в GID. Допустимые режимы: adduser, adduser --system, addgroup, addgroup --system.

--group
Использование этой опции в adduser --system указывает, что новый пользователь должен получить одноименную группу в качестве основной группы. Если такая одноименная группа уже не существует, она создается. Если не используется в сочетании с --system, создается группа с указанным именем. Последнее — действие по умолчанию, если программа вызывается как addgroup. Допустимые режимы: adduser --system, addgroup, addgroup --system.

--help
Отображает краткие инструкции.

--home dir
Использовать dir в качестве домашнего каталога пользователя, а не каталог по умолчанию, указанный в файле конфигурации (или /nonexistent, если используется adduser --system). Если каталог не существует, он создается. Допустимые режимы: adduser, adduser --system.

--ingroup GROUP
При создании пользователя эта опция устанавливает номер основного GID нового пользователя в GID указанной группы. В отличие от опции --gid, группа здесь указывается по имени, а не по числовому идентификатору. Группа должна уже существовать. Допустимые режимы: adduser, adduser --system.

--lastuid ID
--lastgid ID

Переопределить последний UID/GID. См. --firstuid.

--no-create-home

Не создавать домашний каталог для нового пользователя. Обратите внимание, что путь к домашнему каталогу нового пользователя все равно будет указан в соответствующем поле в файле /etc/passwd. Использование этой опции не подразумевает, что это поле должно быть пустым. Скорее, это указывает adduser на то, что какой-либо другой механизм будет отвечать за инициализацию домашнего каталога нового пользователя. Допустимые режимы: adduser, adduser --system.

--no-copy-skel

Не копировать файлы из /etc/skel в домашний каталог нового пользователя. Если домашний каталог создается заново, он будет пустым. Допустимые режимы: adduser, adduser --system.

--quiet

Синоним для --stdoutmsglevel=warn. Устарело.

--shell shell

Использовать shell в качестве оболочки для входа пользователя, а не оболочку по умолчанию, указанную в файле конфигурации (или /usr/sbin/nologin, если используется adduser --system). Допустимые режимы: adduser, adduser --system.

--system

Обычно adduser создает динамически выделяемые учетные записи и группы пользователей, как определено в Debian Policy, глава 9.2.2. С этой опцией adduser создает динамически выделяемого системного пользователя и группу и соответственно изменяет их режим. Допустимые режимы: adduser, addgroup.

--uid ID

Принудительно установить новый идентификатор пользователя равным заданному числу. adduser завершится с ошибкой, если идентификатор пользователя уже используется. Допустимые режимы: adduser, adduser --system.

--verbose

Синоним для --stdoutmsglevel=info. Устарело.

--stdoutmsglevel prio
--stderrmsglevel prio
--logmsglevel prio

Минимальный уровень приоритета для сообщений, регистрируемых в syslog/journal и на консоли, соответственно. Значения: trace, debug, info, warn, err и fatal. Сообщения с установленным здесь или более высоким уровнем приоритета выводятся в соответствующую среду. Сообщения, выводимые в stderr, не повторяются в stdout. Это позволяет локальному администратору независимо управлять многословностью adduser на консоли и в журнале, сохраняя, возможно, запутывающую информацию для себя, при этом оставляя полезную информацию в журнале. stdoutmsglevel, stderrmsglevel и logmsglevel по умолчанию равны warn, warn и info соответственно.

-v , --version

Отобразить информацию о версии и авторских правах.

ДОПУСТИМЫЕ ИМЕНА

Исторически, adduser(8) и addgroup(8) обеспечивали соответствие стандарту IEEE Std 1003.1-2001, который разрешает использование только следующих символов в именах групп и пользователей: буквы, цифры, символы подчеркивания, точки, символы «@» и дефисы. Имя не может начинаться с дефиса или «@». Символ «$» разрешен в конце имен пользователей, чтобы разрешить типичные учетные записи машин Samba.

Настройки по умолчанию для NAME_REGEX и SYS_NAME_REGEX разрешают использование букв и цифр в именах пользователей, а также дефисов (-) и символов подчеркивания (_); имя должно начинаться с буквы (или символа подчеркивания для системных пользователей).

Наиболее либеральная политика, доступная при использовании опции --allow-all-names, просто выполняет те же проверки, что и useradd(8). Обратите внимание, что проверки useradd стали намного более строгими в Debian 13.


Изменение поведения по умолчанию может привести к созданию запутанных или вводящих в заблуждение имен; используйте с осторожностью.

ЛОГИРОВАНИЕ

^ dduser использует обширное и настраиваемое логирование для адаптации уровня детализации к потребностям системного администратора.

Каждому сообщению, которое печатает adduser, присваивается значение приоритета авторами. Это значение приоритета нельзя изменить во время выполнения. Доступные значения приоритета: crit, error, warning, info, debug и trace.

Если вы считаете, что сообщение имеет неверный приоритет, пожалуйста, сообщите об ошибке.

Каждый раз, когда генерируется сообщение, код определяет, следует ли выводить сообщение в стандартный вывод, стандартный поток ошибок или в syslog. Это в основном и независимо контролируется настройками STDOUTMSGLEVEL, STDERRMSGLEVEL и LOGMSGLEVEL. Для целей тестирования эти настройки можно переопределить в командной строке.

Только сообщения с приоритетом, равным или превышающим соответствующий уровень сообщения, записываются в соответствующий выходной канал. Сообщение, которое было записано в стандартный поток ошибок, не записывается повторно в стандартный вывод.

КОДЫ ВЫХОДА

0 Успешно: пользователь или группа существуют, как указано. Это может иметь две причины: пользователь или группа были созданы этим вызовом `adduser` или пользователь или группа уже присутствовали в системе, как указано, до вызова `adduser`. Если `adduser --system` вызывается для пользователя, который уже существует с запрошенными или совместимыми атрибутами, он также вернет 0.

11 Объект, который `adduser` должен создать, уже существует.

12 Объект, с которым `adduser` или `deluser` должны работать, не существует.

13 Объект, с которым `adduser` или `deluser` должны работать, не имеет свойств, необходимых для завершения операции: пользователь (группа), который должен быть создан как системный пользователь (группа), уже существует и не является системным пользователем (группой), или пользователь (группа), который должен быть создан с определенным UID (GID), уже существует и имеет другой UID (GID), или системный пользователь (группа), который должен быть удален, существует, но не является системным пользователем (группой).

21 Явно запрошенный UID (GID) для нового пользователя (группы) уже используется.

22 Нет доступного UID (GID) в запрошенном диапазоне.

23 Нет группы с запрошенным GID для основной группы для нового пользователя.

31 Выбранное имя для нового пользователя или новой группы не соответствует выбранным правилам именования.

32 Домашний каталог нового пользователя должен быть абсолютным путем.

33 `useradd` вернул код выхода 19 «недопустимое имя пользователя или группы». Это означает, что выбранное имя пользователя или группы не соответствует ограничениям `useradd`, и `adduser` не может создать пользователя.

41 Группа, которую необходимо удалить, не пуста.

42 Пользователь, которого запросили удалить из группы, изначально не является ее членом.

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

51 Обнаружено неверное количество или порядок параметров командной строки.

52 Обнаружены несовместимые опции в файле конфигурации.

53 Обнаружены взаимоисключающие опции командной строки.

54 `adduser` и `deluser` запущены от имени пользователя, не являющегося root, и, следовательно, не могут работать.

55 `deluser` откажется удалять учетную запись root.

56 Запрошена функция, для которой необходимо установить дополнительные пакеты. См. разделы «Рекомендуется» и «Предлагается» пакета `adduser`.

61 `adduser` был прерван по какой-то причине и попытался откатить изменения, внесенные во время выполнения.

62 Внутренняя ошибка `adduser`. Этого не должно происходить. Пожалуйста, попробуйте воспроизвести проблему и отправьте отчет об ошибке.

71 Ошибка при создании и обработке файла блокировки.

72 Ошибка при доступе к файлу(ам) конфигурации.

73 Ошибка при доступе к файлу пула.

74 Ошибка при чтении файла пула, синтаксическая ошибка в файле.

75 Ошибка при доступе к вспомогательным файлам.

81 Исполняемый файл, необходимый для `adduser` или `deluser`, не найден. Проверьте установку и зависимости.

82 Выполнение внешней команды вернуло неожиданную ошибку.

83 Внешняя команда была завершена сигналом.

84 Системный вызов завершился с неожиданной ошибкой.

Или по многим другим причинам, которые еще не задокументированы и выводятся в консоль. Вы можете увеличить уровень регистрации, чтобы сделать adduser более подробным.

БЕЗОПАСНОСТЬ

^ dduser требует привилегий root и предлагает, с помощью опции командной строки --conf, использовать различные файлы конфигурации. Не используйте sudo(8) или аналогичные инструменты, чтобы предоставить adduser частичные привилегии с ограниченными параметрами командной строки. Это легко обойти и может позволить пользователям создавать произвольные учетные записи. Если вам это нужно, рассмотрите возможность написания собственного сценария-обертки и предоставления привилегий для его выполнения.

ФАЙЛЫ

/etc/adduser.conf

Файл конфигурации по умолчанию для adduser(8) и addgroup(8)

/usr/local/sbin/adduser.local

Дополнительные пользовательские надстройки, см. adduser.local(8)

ЗАМЕЧАНИЯ

К сожалению, термин «системная учетная запись» имеет двойное значение в Debian. Он означает учетную запись для фактической системы Debian, отличающуюся от учетной записи приложения, которая может существовать в базе данных пользователей некоторого приложения, работающего в Debian. Системная учетная запись в этом определении может входить в систему, имеет UID, может быть членом системных групп, может владеть файлами и процессами. С другой стороны, Debian Policy в главе 9.2.2 проводит различие между динамически выделяемыми системными пользователями и группами и динамически выделяемыми учетными записями пользователей, что в обоих случаях означает специальные экземпляры системных учетных записей. Необходимо следить за тем, чтобы не путать эту терминологию. Поскольку adduser и deluser(8) никогда не обращаются к учетным записям приложений, и все в этом пакете относится к системным учетным записям, использование терминов «учетная запись пользователя» и «системная учетная запись» на самом деле не является двусмысленным в контексте этого пакета. Для ясности в этом документе используется определение «локальная системная учетная запись или группа», если необходимо провести различие между учетными записями приложений или учетными записями, управляемыми в службе каталогов.


adduser изначально задумывался как универсальный интерфейс для различных служб каталогов для создания и удаления обычных и системных учетных записей в Debian, начиная с 1990-х годов. Эта концепция была отменена в 2022 году. Причины этого включают в себя: на практике небольшая серверная система вряд ли будет иметь права записи в общеорганизационную службу каталогов, локально установленные пакеты сложно управлять централизованно контролируемыми системными учетными записями, общеорганизационные службы каталогов имеют свои собственные процессы управления, и маловероятно, что команда adduser когда-либо сможет выделить достаточно ресурсов для разработки и поддержки множества служб каталогов, требующих поддержки.

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

ОШИБКИ

Непоследовательное использование терминологии в отношении термина «системная учетная запись» в документации и коде является ошибкой. Пожалуйста, сообщите об этом, чтобы мы могли улучшить нашу документацию.

adduser уделяет особое внимание тому, чтобы его можно было напрямую использовать в сценариях обслуживания Debian без условных оберток, подавления ошибок и других вспомогательных элементов. Единственное, что должен кодировать сопровождающий пакет, — это проверка наличия исполняемого файла в скрипте postrm. Сопровождающие adduser считают, что необходимость в дополнительных вспомогательных элементах является ошибкой, и призывают своих коллег, сопровождающих пакеты Debian, сообщать об ошибках в пакете adduser в этом случае.

СМОТРИТЕ ТАКЖЕ

adduser.conf(5), deluser(8), groupadd(8), useradd(8), usermod(8), /usr/share/doc/basepasswd/users-and-groups.html на любой системе Debian, Debian Policy 9.2.2, RFC8264 «PRECIS Framework: Preparation, Enforcement, and Comparison of Internationalized Strings in Application Protocols», RFC8265 «PRECIS Representing Usernames and Passwords», https://wiki.debian.org/UserAccounts.