Идентификатор группы
Эта статья нуждается в дополнительных цитатах для проверки . ( сентябрь 2014 г. ) |
В Unix-подобных системах несколько пользователей могут быть объединены в группы . POSIX и обычных Unix Разрешения файловой системы разделены на три класса: пользователь , группа и другие . Использование групп позволяет организованно делегировать дополнительные возможности, такие как доступ к дискам, принтерам и другим периферийным устройствам . Этот метод, среди прочего, также позволяет суперпользователю делегировать некоторые административные задачи обычным пользователям, аналогично группе «Администраторы» в Microsoft Windows NT и ее производных.
Идентификатор группы , часто сокращенно GID , представляет собой числовое значение, используемое для обозначения конкретной группы. [1] Диапазон значений 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) идентификаторы. Обычно они идентичны, но в setuid
и 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, а затем зарегистрировать это статическое распределение вports /GIDs . [2]
Особые значения
[ редактировать ]- 0: GID суперпользователя обычно равен нулю (0).
- −1: значение
(gid_t) -1
зарезервирован POSIX для идентификации пропущенного аргумента. [3] - 65,534: ядро Linux по умолчанию равно 2. 16 −2 = 65 534 (которое во многих дистрибутивах Linux сопоставляется с именем группы «nogroup»), когда 32-битный GID не вписывается в возвращаемое значение 16-битного системного вызова. [4] Значение также возвращается idmapd , если имя группы во входящем пакете NFSv4 не соответствует ни одной известной группе в системе.
Персональные группы
[ редактировать ]Многие системные администраторы выделяют для каждого пользователя также личную первичную группу, которая имеет то же имя, что и имя входа пользователя, и часто также имеет тот же числовой GID, что и UID пользователя. Такие персональные группы не имеют других участников и упрощают совместную работу с другими пользователями в общих каталогах, позволяя пользователям привычно работать с umask 0002
. Таким образом, вновь созданные файлы могут иметь по умолчанию разрешения на запись для членов группы, поскольку обычно это разрешает доступ на запись только для членов личной группы, то есть только для владельца файла. Однако если файл создан в общем каталоге, принадлежащем другой группе и у которого установлен бит setgid , то созданный файл автоматически станет доступен для записи и членам группы этого каталога.
Во многих системах Linux USERGROUPS_ENAB
переменная в /etc/login.defs
контролирует, будут ли такие команды, как useradd
или userdel
автоматически добавлять или удалять связанную личную группу.
См. также
[ редактировать ]- успокоился
- Идентификатор пользователя
- Идентификатор процесса
- индексный дескриптор
- Права доступа к FAT
- Идентификатор (Unix)
Ссылки
[ редактировать ]- ^ «Определения» . pubs.opengroup.org . Проверено 6 декабря 2021 г.
- ^ Руководство по портированию FreeBSD , Раздел 6.26: Добавление пользователей и групп.
- ^ «чаун» . pubs.opengroup.org . Проверено 6 декабря 2021 г.
- ^ «Пространства имен в работе, часть 5: Пользовательские пространства имен [LWN.net]» . lwn.net . Проверено 6 декабря 2021 г.