Введение
Грамотное разграничение полномочий между учетными записями и организация совместной работы над проектами в Linux базируются на механизме групп. В операционной системе Ubuntu одним из наиболее удобных инструментов для решения этой задачи выступает высокоуровневая утилита addgroup. В данном материале мы разберем процесс создания пользовательских и служебных объединений, добавление участников, а также заглянем «под капот» системы — изучим конфигурационные файлы /etc/group, /etc/gshadow и правила выделения диапазонов GID.
Базовый синтаксис addgroup и создание стандартной группы
Инструмент addgroup поставляется в составе пакета adduser. Прежде чем приступать к практическим шагам, убедимся в доступности бинарного файла в системе и при необходимости установим его через менеджер пакетов APT.

Основная задача утилиты addgroup — регистрация новой группы в учетных базах данных ОС. При вызове без специализированных флагов команда самостоятельно подбирает свободный числовой идентификатор (GID) из пула, предназначенного для непривилегированных учетных записей.
⚙️ [Ключевые параметры запуска]
--gid GID : явное назначение конкретного числового идентификатора создаваемой группе.--system : генерация системной группы (выделяется GID из служебного диапазона, как правило, ниже 1000).--quiet : подавление информационных сообщений в терминале во время работы.--debug : подробный вывод шагов выполнения для диагностики возможных проблем.--force-badname : отключение строгой валидации имени (разрешает использовать нестандартные символы).

Чтобы удостовериться в успешной записи параметров, взглянем на последние строки системной базы групп с помощью команды tail -n 3 /etc/group. Новая запись для devteam с автоматически назначенным GID появится в самом конце файла.

Ручное переопределение GID и регистрация системных групп (–system)
Нередко корпоративные стандарты или настройки сетевых хранилищ требуют фиксированных идентификаторов. Флаг --gid позволяет администратору жестко привязать нужный номер — например, зарегистрируем группу qa-team со значением 1500.

Для изоляции процессов, фоновых служб и демонов применяются системные учетные записи. Ключ --system указывает утилите выделить свободный идентификатор из специального зарезервированного пула (обычно от 100 до 999). Создадим группу app-service, которой система назначит первый незанятый сервисный GID (в данном случае 103).

С помощью фильтра grep проверим корректность внесения обеих записей в файл /etc/group. Мы видим четкое разделение: qa-team получила пользовательский GID 1500, а app-service разместилась в служебном сегменте с GID 103.

Включение пользователей в группу и аудит членства
Для моделирования реального сценария подготовим тестовую учетную запись testuser. Если аккаунт еще не заведен, создадим его с домашним каталогом и командным интерпретатором Bash.

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

Команда id выводит полную картину удостоверения текущего пользователя: его личный UID, основной GID и перечень всех вторичных групп, куда входит данный субъект доступа.

Анатомия конфигурационных файлов и принципы распределения GID
Поведение addgroup контролируется центральным конфигурационным файлом /etc/adduser.conf. Запросив ключевые директивы с префиксом GID, можно увидеть границы допустимых диапазонов для системных и пользовательских записей.

Заглянув внутрь строки devteam в файле /etc/group, можно разобрать структуру двоеточий (:): имя группы, маркер пароля (x), уникальный номер 1001 и список активных участников (testuser).

Чувствительные данные, включая хеши групповых паролей и список администраторов группы, хранятся в защищенном файле /etc/gshadow, доступ к которому ограничен суперпользователем. Восклицательный знак (!) сигнализирует о том, что прямой вход в группу по паролю заблокирован.

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