Различное поведение SGID в *BSD и Linux

Различное поведение SGID в *BSD и Linux

Я наткнулся на интересную вещь: в системах BSD новый файл будет иметь группу, установленную на группу каталога. В системах System V он будет иметь основную группу пользователя, создавшего файл. Что касается систем BSD, в чем смысл такого поведения и означает ли это, чтоСГИДбит там бесполезен?

решение1

Это может зависеть от операционной системы, а может и нет, вы не предоставили достаточно подробностей, чтобы сказать наверняка.

Бит sgid исполняемого файла заставляет его запускаться в группе файла, даже если пользователь, запустивший его, не входит в эту группу. (установить идентификатор группы) Если файл не является исполняемым, бит sgid в основном не имеет значения.

В каталоге бит sgid был перепрофилирован для управления наследованием групп в каталоге. Если бит sgid установлен в каталоге, файлы, созданные в каталоге, наследуют группу (но не групповые разрешения). Суть в том, что если у вас есть общий каталог, используемый пользователями в группе, они все могут установить свой umask на 002 вместо 022 и все редактировать файлы в каталоге без необходимости постоянно исправлять групповые разрешения. (Без изменения umask это менее полезно.)

Так что, возможно, на двух системах, которые вы рассматривали, в одной был установлен бит sgid для каталога, в котором вы тестировали, а в другой — нет. Эта функция не существовала вечно, поэтому, если одна из систем достаточно старая, она может не поддерживать наследование каталога sgid. (Но оно было околопочти(Вечно, так что это маловероятно.)

Это никоим образом не делает sgid бесполезным, я не уверен, почему вы так думаете, вы не объяснили, что именно вы считаете бесполезным. Обратите внимание, что если у файла есть владелец группы, в которой вы не состоите, вы не сможете сделать файл sgid, не изменив сначала владельца группы, а если файл копирует не root-пользователь, sgid отбрасывается.

Связанный контент