Идентификатор группы

Материал из wikixw
Перейти к навигации Перейти к поиску

"Egid" перенаправляет сюда. О Главном разведывательном управлении Египта см. в разделе Главное разведывательное управление Египта.

В Unix-подобных системах несколько пользователей могут быть объединены в группы. Разрешения POSIX и обычных файловых систем Unix организованы в три класса: user, group и другие. Использование групп позволяет организованно делегировать дополнительные возможности, такие как доступ к дискам, принтерам и другим периферийным устройствам. Этот метод, среди прочего, также позволяет суперпользователю делегировать некоторые административные задачи обычным пользователям, подобно группе администраторов в Microsoft Windows NT и ее производных.

Идентификатор группы, часто сокращаемый до 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) идентификатор. Обычно они идентичны, но в setuidsetgidпроцессах и они разные.

Соглашения[править]

Тип[править]

Первоначально использовалось 16-разрядное целое число со знаком. Поскольку знак был необязательным – отрицательные числа не создают допустимых идентификаторов групп – вместо него теперь используется целое число без знака, позволяющее использовать идентификаторы групп от 0 до 65 535. Современные операционные системы обычно используют 32-разрядные целые числа без знака, которые допускают идентификаторы групп от 0 до 4 294 967 295.

Зарезервированные диапазоны[править]

Многие системы Linux резервируют диапазон номеров GID от 0 до 99 для статически выделяемых групп и либо 100-499, либо 100-999 для групп, динамически выделяемых системой в сценариях после установки. Эти диапазоны часто указываются в /etc/login.defs, для useraddgroupaddи подобных инструментах.

Во FreeBSD портеры, которым нужен GID для их пакета, могут выбрать свободный идентификатор из диапазона от 50 до 999, а затем зарегистрировать это статическое распределение в ports/ GIDs.

Особые значения[править]

0: Суперпользователь обычно имеет GID, равный нулю (0).

-1: значение (gid_t) -1зарезервировано POSIX для идентификации пропущенного аргумента.

65 534: ядро Linux по умолчанию имеет значение 2 16-2 = 65 534 (которое многие дистрибутивы Linux сопоставляют с именем группы "nogroup"), когда 32-разрядный GID не вписывается в возвращаемое значение 16-разрядного системного вызова. Значение также возвращается idmapd, если имя группы во входящем пакете NFSv4 не соответствует какой-либо известной группе в системе.

Персональные группы[править]

Многие системные администраторы выделяют для каждого пользователя также личную основную группу, которая имеет то же имя, что и имя входа пользователя, и часто также имеет тот же числовой идентификатор GID, что и UID пользователя. В таких личных группах нет других участников, и они упрощают сотрудничество с другими пользователями в общих каталогах, позволяя пользователям привычно работать с umask 0002. Таким образом, для вновь созданных файлов по умолчанию могут быть разрешены права на запись для членов группы, поскольку обычно это разрешает доступ на запись только для членов персональной группы, то есть только для владельца файла. Однако, если файл создается в общем каталоге, который принадлежит другой группе и имеет установленный бит setgid, то созданный файл автоматически станет доступным для записи и для членов группы этого каталога.

Во многих системах Linux USERGROUPS_ENABпеременная in /etc/login.defsопределяет, нравится ли командам useraddили userdelавтоматически добавляет или удаляет связанную персональную группу.

Смотрите также[править]

Пруф[править]

lwn.net/Articles/532593/