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

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

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

  • Что такое пользователь и группа JDK по умолчанию?
  • can not добавить пользователя в группу sudo в centOS 7 i386 (нет GUI, его минимальный)
  • Что означает «число» в поле владельца файлов в Linux?
  • NIS: Как разрешить доступ к домашним каталогам локальных и удаленных пользователей?
  • Создание пользователя proFTPd
  • Как сделать файлы, созданные определенным пользователем, для получения определенных разрешений по умолчанию
  • Разрешение Samba share отказало пользователю в записи файла, но все еще показывает
  • chown удаляет липкий бит: ошибка или функция?
  • 3 Solutions collect form web for “Почему только одна активная группа за раз?”

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

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

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

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

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

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

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

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

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

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

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

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

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

    Linux и Unix - лучшая ОС в мире.