В Unix-подобных системах несколько пользователей могут быть помещены в группы. POSIX и обычные Unix разрешения файловой системы разделены на три класса: пользователь, группа и другие. Использование групп позволяет организованно делегировать дополнительные возможности, такие как доступ к дискам, принтерам и другим периферийным устройствам. Этот метод, среди прочего, также позволяет суперпользователю делегировать некоторые административные задачи обычным пользователям, подобно группе администраторов в Microsoft Windows NT и ее производных.
A идентификатор группы, часто сокращенно GID, представляет собой числовое значение, используемое для представления определенной группы. Диапазон значений GID варьируется в разных системах; как минимум, GID может находиться в диапазоне от 0 до 32 767, с одним ограничением: группа входа в систему для суперпользователя должна иметь GID 0. Это числовое значение используется для ссылки на группы в / etc / passwd Файлы
и / etc / group
или их эквиваленты. Файлы теневого пароля и Сетевая информационная служба также относятся к числовым GID. Идентификатор группы является необходимым компонентом файловых систем Unix и процессов.
В системах Unix, каждый пользователь должен быть членом хотя бы одной группы, первичной группы, которая определяется числовым GID записи пользователя в базе данных passwd, которую можно просмотреть с помощью команды getent passwd
(обычно хранится в / etc / passwd
или LDAP ). Эта группа называется идентификатором основной группы. Пользователь может быть указан как член дополнительных групп в соответствующих записях в базе данных группы, которые можно просмотреть с помощью getent group
(обычно хранится в / etc / group
или LDAP ); идентификаторы этих групп называются идентификаторами дополнительных групп.
процессы Unix имеют эффективный (EUID, EGID), действительный (UID, GID) и (SUID, SGID) ID. Обычно они идентичны, но в процессах setgid
они разные.
Первоначально использовалось 16-битное целое число со знаком. Поскольку в знаке не было необходимости - отрицательные числа не являются допустимыми идентификаторами группы - теперь вместо них используется целое число без знака, позволяющее использовать идентификаторы групп от 0 до 65 535. Современные операционные системы обычно используют беззнаковые 32-битные целые числа, которые позволяют использовать идентификаторы групп от 0 до 4 294 967 295.
Многие системы Linux резервируют диапазон номеров GID от 0 до 99 для статически распределенных групп и 100–499 или 100–999 для групп, динамически выделяемых системой после установки. скрипты. Эти диапазоны часто указываются в /etc/login.defs
для useradd
, groupadd
и подобных инструментов.
На FreeBSD переносчики, которым нужен GID для своего пакета, могут выбрать бесплатный из диапазона от 50 до 999, а затем зарегистрировать это статическое распределение в портах / GID.
(gid_t) -1
зарезервировано POSIX для идентификации пропущенного аргумента.Многие системные администраторы также выделяют для каждого пользователя личная первичная группа, имя которой совпадает с именем пользователя для входа в систему, а также часто имеет тот же числовой GID, что и UID пользователя. Такие личные группы не имеют других участников и упрощают совместную работу с другими пользователями в общих каталогах, позволяя пользователям обычно работать с umask 0002
. Таким образом, вновь созданные файлы могут иметь по умолчанию права на запись, разрешенные для членов группы, потому что это обычно дает доступ на запись только для членов личной группы, то есть только для владельца файла. Однако, если файл создается в совместно используемом каталоге, который принадлежит другой группе и имеет установленный бит setgid, то созданный файл автоматически станет доступным для записи членам группы этого каталога.
Во многих системах Linux переменная USERGROUPS_ENAB
в /etc/login.defs
определяет, будут ли команды типа useradd
или userdel
автоматически добавлять или удалять связанную личную группу.