Идентификаторы доступа и групп POSIXLinux

Ответить
Anonymous
 Идентификаторы доступа и групп POSIX

Сообщение Anonymous »


Не могли бы вы объяснить мне, как *nix проверяет права доступа к файлам (доступ POSIX)? Или дайте ссылку. Я нашел много ссылок, но вопросы остались.

Насколько я понимаю, у процесса есть шесть идентификаторов (r|e|s)(uid|gid). И есть список дополнительных групп процесса. Он рассчитывается на основе списка дополнительных групп реального пользователя при запуске нового процесса (плюс идентификатор процесса). Но изменение любого идентификатора gid не влияет на этот список. Вам нужно вызвать initgroups().

Файл имеет uid, gid и права доступа с 3 группами битов (классами): «владелец», «группа» и «другие».

И алгоритм такой:
[*]Если euid процесса равен 0, это root и у него есть какие-либо разрешения. В противном случае нам нужно определить класс битов. [*]Если euid процесса = uid файла, то он является «владельцем» [*]Затем мы проверяем, соответствует ли процесс группе файлов, и используем класс «группа» или «другой» в зависимости от результата.
Насколько я понимаю, в последнем действии, которое мы только что просмотрели, файл gid включен в список дополнительных групп процесса. Это верно? Тогда я не понимаю, зачем нам (r|e|s)gid идентификаторы? Они не используются при проверке доступа и не влияют непосредственно на список дополнительных групп.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»