Почему только одна активная группа за один раз?

$ cat foo
.23.12.44.5.
 .233.3.3.3
line1
 23.4.5.3.2..
 ....33.2.3.45.5
 .3.3.2.....

line2
$ sed 's/^ *\.*//;s/\.* *$//' foo
23.12.44.5
233.3.3.3
line1
23.4.5.3.2
33.2.3.45.5
3.3.2

line2
4
26.08.2014, 16:44
3 ответа

Одна причина: когда создается файл, он может быть только в одной группе, и эта группа не указывается при создании файла. Итак, должно быть понятие единой активной группы.

4
27.01.2020, 20:47

Все группы активны в любое время.

Вы можете получить доступ к любому файлу, к которому имеет доступ любая из ваших групп. Но когда вы создаёте новый файл/процесс, он создаётся с использованием вашей основной группы, если только не используется setgid или ACL по умолчанию.

5
27.01.2020, 20:47

Q1: Итак, вопрос в том, что является фундаментальной причиной, по которой проектировщики выбрали эту концепцию одной активной группы, хотя и позволяют пользователю иметь более одной дополнительной группы?

Первоначальным основным назначением групп в Unix было разрешение совместного доступа к файлам на дисках. В этом случае вы, как правило, большую часть времени имели доступ к своим файлам, а иногда и к файлам, которые были общими для группы пользователей.

Итак, я подозреваю, что она была разработана с учетом этой модели для начала. Со временем эта модель была изменена, но общий подход остается нетронутым, что вы находитесь в основной группе (указанной в /etc/passwd) и у вас есть дополнительные группы, в которые вы можете войти (указанные в /etc/group).

Некоторые из более ранних реализаций (например, на Солнце/Солярисе) включали ограничение в ~15 групп, в которые пользователь может входить при использовании NIS+.

Q2: Что было бы проблемой, если бы все группы были активны одновременно?

Внутри POSIX есть несколько системных вызовов, которые подвергают API с такой конструкцией, поэтому, вероятно, было бы большой задачей модифицировать его, учитывая количество программного обеспечения, которое построено вокруг него на данный момент. И на самом деле нет никаких причин изменять его.

Другими большими ограничениями являются файловая система и пространство для процессов. Для файловых систем они обычно включают только одно значение для GID, к которому должен быть "сгруппирован" данный файл или каталог. То же самое касается и запущенных процессов. Обычно они связаны с одной группой.

Однако, этот общий подход со временем смог адаптироваться к интеграции с Active Directory и другими технологиями учетных записей, так что это отличная реализация, хотя и немного странная, когда вы впервые узнаете об этом.

Ссылки

= POSIX-документы OpenGroup с упоминанием GID

2
27.01.2020, 20:47

Теги

Похожие вопросы