3

Согласно этому источнику в Linux, существует способ принудительной блокировки записи файла, если файловая система смонтирована для его принятия. Но для этого необходимо добавить бит setgid в файл и удалить разрешение на выполнение группы для файла. Говорится:

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

Логика заключается в том, что бит setgid имеет смысла без прав группового выполнения. Но, казалось бы, обратное должно быть правдой.

Бит setgid не повлияет на пользователей, которые уже находятся в группе файла, поэтому бит setgid должен иметь смысл, если файл исполняем для «других» пользователей или для владельца, если владелец не является членом файла. группа.

Разрешение на выполнение группы - это разрешение на выполнение, которое не должно иметь никакого отношения к утилите бита setgid .

Что мне не хватает?

1 ответ1

0

Ты прав; это не бессмысленно.  Такие режимы, как 2001, 4001, 6001 и даже 2100 имеют смысл для исполняемых файлов.  Они просто маловероятны (особенно первые три).  Рассмотрим гипотетическую программу под названием grow , принадлежащую scott , группа green .  Если в этой программе установлен бит «setgid», это означает, что вы хотите, чтобы любой процесс, выполняющий эту программу, выполнялся с GID = green .  Можно утверждать, что нелогично или глупо отказывать в разрешении на запуск программы пользователям / процессам, которые уже находятся в green группе.

Но я провел некоторые эксперименты, чтобы поддержать этот ответ, и обнаружил кое-что, что удивило меня.  Видимо кто-то прочитал описание обязательной блокировки и воспринял это всерьез.  В моем тестировании режимы 2001 и 2100 не работают правильно - бит setgid не учитывается, если бит group-execute не установлен.  Я считаю, что это ошибка.

Ты говоришь,

... казалось бы, обратное должно быть правдой.

Я не знаю, что вы подразумеваете под этим.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .