| Предыдущий | Следующий |
| ENOMEM | EFAULT |
EACCES
Права проверяются на всём пути
EACCES обычно воспринимается как отказ в доступе к конечному объекту, однако проверка выполняется не только для него. Чтобы разрешить путь, процесс должен иметь право поиска для каждого проходимого каталога. Для создания файла дополнительно требуется право изменять родительский каталог. Запуск может быть запрещён правами файла, недоступностью интерпретатора скрипта либо политикой монтирования, запрещающей исполнение.
Поэтому EACCES не сводится к ошибке в режиме одного файла. Читаемый файл может быть недоступен через закрытый промежуточный каталог; допустимое имя нового файла не создастся в каталоге без права записи; служба или контейнер могут фактически работать от другого пользователя или группы.
Как расследовать
- Проверьте каждый компонент пути: право поиска в каталогах, владельца, ACL, параметры монтирования и права родительского каталога.
- Уточните эффективного пользователя и группы именно процесса службы, а не административной интерактивной оболочки.
- При создании и замене объектов проверьте политику родительского каталога и правила sticky bit.
- Выдавайте минимально необходимые права и не используйте чрезмерно широкие разрешения только ради исчезновения симптома.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.