Как использовать cap_dac_override из libcap

Как использовать cap_dac_override из libcap

Я пытаюсь протестировать cap_dac_override. Я написал простой hello world. Я скомпилировал программу и удалил все разрешения из исполняемого файла.

В данный момент я не могу выполнить свою программу, запустив ./hello, что правильно. Теперь я хотел бы применить возможность, чтобы программа могла быть выполнена, даже если у пользователя нет разрешения на выполнение.

Могу ли я спросить, как настроить cap_dac_override, чтобы я все равно мог выполнить программу, или я использую cap_dac_override совершенно неправильно?

setcap cap_dac_override=ep hello

решение1

Вы путаете возможности и разрешения.

Theбиты режима файлаилиразрешенияописыватьчто можно сделать с файлом. Когда вы удаляете все разрешения для файла, вы даете указание ОС, что не хотите, чтобы кто-либо мог читать его, записывать в него или выполнять его.

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

Если setcap cap_dac_override=ep helloвы разрешили программе helloпереопределить обычные проверки разрешений при ее запуске. Но это не меняет того, что обычные проверки разрешений применяются при попытке выполнить hello.

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