Команда groupadd предназначена для задействования одноименной утилиты, осуществляющей создание групп пользователей. Данная команда требует привилегий суперпользователя (или пользователя root) и значительно упрощает процесс создания групп пользователей по сравнению с командой vigr, которая позволяет редактировать файл базы данных групп пользователей с помощью текстового редактора vi.
Базовый синтаксис команды выглядит следующим образом:
# groupadd [параметры] имя-группы
Единственным обязательным параметром утилиты является имя новой группы пользователей. Все остальные параметры позволяют изменить стандартные параметры групп пользователей и используются лишь в случае необходимости. Среди параметров утилиты следует отметить параметр -f, позволяющий корректно завершать работу утилиты в случае совпадения имени или идентификатора новой группы пользователей с именем или идентификатором одной из существующих групп пользователей, параметр -g, позволяющий явно задать числовой идентификатор группы пользователей, параметр -K, позволяющий изменить значение переменной из файла конфигурации /etc/login.defs (используется формат ИМЯ_ПЕРЕМЕННОЙ=ЗНАЧЕНИЕ, допускается многократное использование параметра -K), параметр -o, позволяющий задать не уникальный идентификатор группы пользователей, параметр -r, позволяющий создать системную группу пользователей (системная группа пользователей отличается от обычной группы пользователей идентификатором; идентификаторы системных групп пользователей находятся в диапазоне SYS_GID_MIN — SYS_GID_MAX, а обычных групп пользователей — в диапазоне GID_MIN — GID_MAX) и параметр -R, позволяющий использовать директорию из окружения chroot.
На работу утилиты оказывают влияние некоторые переменные из файла конфигурации /etc/login.defs. В частности, диапазон идентификаторов групп обычных пользователей задается с помощью переменных GID_MIN и GID_MAX, диапазон групп системных пользователей — с помощью переменных SYS_GID_MIN и SYS_GID_MAX, а максимальное количество имен пользователей в записи, соответствующей группе — с помощью переменной MAX_MEMBERS_PER_GROUP (используется крайне редко).
Для создания обычной группы пользователей достаточно использовать утилиту groupadd без каких-либо параметров. Для создания группы пользователей требуются права суперпользователя.
# groupadd regularusers
В результате будет создана группа пользователей с именем regularusers. Запись, соответствующую новой группе пользователей, можно получить с помощью утилиты grep:
$ grep regularusers /etc/group
regularusers:x:1001:
Примечание: для добавления пользователей в группу может использоваться команда useradd или adduser.
Для того, чтобы создать группу пользователей с заданным идентификатором достаточно использовать параметр -g.
# groupadd -g 5000 newusers
В результате будет создана группа пользователей newusers с идентификатором 5000. А это запись, соотвествующая новой группе пользователей:
$ grep newusers /etc/group
newusers:x:5000:
Очевидно, что новая группа пользователей имеет идентификатор 5000, который был явно указан при использовании утилиты.
Для того, чтобы создаваемой группе был присвоен идентификатор из заданного диапазона, следует изменить значения диапазона идентификаторов групп пользователей с помощью параметра -K.
# groupadd -K GID_MIN=5001 -K GID_MAX=5100 selectedusers
Теперь идентификатор новой группы пользователей selectedusers будет выбран из диапазона от 5001 до 5100.
$ grep selectedusers /etc/group
selectedusers:x:5001:
В нашем случае новая группа пользователей получила первое значение из заданного диапазона.