Intereting Posts
Force TreeSheets открыть новый файл в новом окне вместо табуляции? Как отобразить UDP-соединение? Совместное использование файлов с разрешениями NFS и Unix Как ACL вычисляет эффективные разрешения для файла? _update-rc.d vncserver-x11-serviced defaults_ COMMAND = Между запуском службы rc.local и mountkernfs существует цикл. ERROR Как я могу аутентифицироваться с помощью ключевого файла при использовании ssh-copy-id? запускать команды оболочки через модуль os и модуль подпроцесса, один работает, а другой не работает Выберите имя файла с наивысшим номером версии Является ли идентификатор машины uuid? Centos 7 отключает предсказуемые имена сетевых интерфейсов с пакером / бродягой Как проверить цель символической ссылки указывает на конкретный путь Установите более старую версию GLibc на RHEL Звуковой модуль alsa snd_aloop Почему `cksum` работает медленнее, чем` md5sum`? Где мои коды отмены ANSI идут, когда я подключаюсь к другому процессу? Могу ли я сохранить их?

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

Насколько я понимаю, пользователи в системе Unix могут принадлежать нескольким группам, и одна из них станет основной группой для этого пользователя. Другие будут дополнительными группами. Вся эта инфраструктура User / Group облегчается файлами / etc / group и / etc / passwd.

Теперь групповое разрешение пользователя определяется исключительно активной группой, которая может быть изменена командой newgrp . Активная группа при входе в систему – это основная группа, определенная в файле / etc / passwd. Итак, вопрос в том, что является основной причиной того, почему дизайнеры выбрали эту концепцию одной активной группы, даже если позволить пользователю иметь более чем одну дополнительную группу? Что было бы проблемой, если бы все группы были активны одновременно?

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

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

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

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

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

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

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

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

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

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

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

Рекомендации

= OpenGroup POSIX docs с упоминанием GID