Какой пользователь (кроме root) может изменять права доступа к файлам в Linux?

Какой пользователь (кроме root) может изменять права доступа к файлам в Linux?

В основном: когда я, как не-root пользователь, выполняю chmodфайл, когда я получаю "отказано в доступе" для этой команды, а когда нет? Какое свойство файла разрешает или запрещает мне изменять разрешения на него?

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

решение1

TL;DR:Если вы хотите запустить chmodфайл в GNU/Linux, вам необходимо быть пользователем root или владельцем файла.

Изчмод(2)(системный вызов chmod) страница руководства:

Эффективный UID вызывающего процесса должен совпадатьвладелец файла, или процесс должен быть привилегированным (Linux: он должен иметь CAP_ВЛАДЕЛЕЦспособность).

Извозможности(7)страница руководства:

CAP_ВЛАДЕЛЕЦ

  • Обходить проверки разрешений для операций, которые обычно требуют, чтобы UID файловой системы процесса совпадал с UID файла (например, chmod(2), utime(2)), за исключением операций, охватываемых CAP_DAC_OVERRIDE и CAP_DAC_READ_SEARCH; [...]

Изsetfacl(1)страница руководства:

РАЗРЕШЕНИЯ

Владельцу файла и процессам, способным на CAP_FOWNER, предоставляется право изменять ACL файла. Это аналогично разрешениям, необходимым для доступа к файловому режиму. (В текущих системах Linux, root — единственный пользовательсCAP_ВЛАДЕЛЕЦ(Возможность.)

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