Что означает код errno 1 (EPERM)?

 
Также может означать:
КонстантаТипОС
ERROR_INVALID_FUNCTIONОшибка WindowsWindows
STATUS_WAIT_1NTSTATUSWindows
kOSReturnErrorКод возврата ядра macOSmacOS
KERN_INVALID_ADDRESSКод возврата ядра macOSmacOS
ippStsNoOperationСтатус Intel IPPЛюбая
S_FALSEHRESULTWindows
WDSCP_CATEGORYHRESULTWindows
WDSMCSERVER_CATEGORYHRESULTWindows
WDSTPTMGMT_CATEGORYHRESULTWindows
APC_INDEX_MISMATCHКод BSODWindows
Предыдущий Следующий
ENOENT

EPERM

Что обычно означает этот errno

EPERM означает, что операция не разрешена в текущем контексте безопасности или владения. Это не просто ещё одно написание «доступ запрещён»: различие важно, поскольку ожидаемые биты чтения или записи могут присутствовать, а правило всё равно требует владельца, capability или допуска к неизменяемому объекту.

Например, удаление или замена имени в каталоге со sticky bit может быть разрешена только владельцу файла, владельцу каталога или привилегированному процессу. В Linux операции также регулируются capabilities и файловыми атрибутами immutable и append-only. Создание жёсткой ссылки может быть запрещено политикой для целевого файла.

Как расследовать

  • Определите точный системный вызов и целевой объект: EPERM имеет конкретный смысл только в контексте API.
  • Проверяйте владельца и правила каталога, а не только биты режима конечного файла. Решение может принимать родительский каталог или sticky bit.
  • Для служб и контейнеров проверьте эффективную учётную запись, набор capabilities, параметры монтирования, атрибуты файловой системы и применимую политику безопасности.
  • Не обходите отказ запуском всего приложения от root. Выдайте процессу только полномочия, необходимые документированной операции.

Ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.