Intereting Posts
Есть ли исчерпывающий список плагинов для Dovecot? BC не обрабатывает масштаб = 0 правильно Параметры в переменной bash $ PS1 Установите .deb полностью «вручную», Невозможно выполнить swapoff, но достаточно физической памяти. Как установить clang 3.9 или выше с помощью apt-get на Linux Mint? Скопировать файлы в новый каталог, только если имя файла находится в массиве Что это значит, когда lshw говорит беспроводной адаптер `UNCLAIMED`, в то время как iwconfig не находит его? Какой дистрибутив для PowerBook G4? Является ли символическая / софт-ссылка похожей на ярлык / псевдоним на рабочем столе? Каков хороший пример команд трубопроводов? Почему Unix-подобные системы выполняют новый процесс при вызове новой функции? Apache не перезагружается … Есть ли журнал, в который я могу заглянуть? Как отключить экран под Linux / BSD? Как обновить Ubuntu, когда система пакетов нарушена?

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

Насколько я понимаю, пользователи в системе 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