Шпаргалка: проверить доступ к файлу перед изменением прав
Сопоставьте пользователя, владельца, режим, ACL и проход по каталогам. Не сводите каждое Permission denied к отсутствию одного бита у файла.
Когда открыть эту шпаргалку
Доступ проверяется в контексте процесса и всего пути. Даже читаемый файл может быть недостижим через родительский каталог. Начните с диагностики; массовое расширение прав способно скрыть причину и открыть лишние данные.
Выбор команды
Замените report.txt нужным путём. Утилиты namei и getfacl могут требовать отдельных пакетов; отсутствие команды не означает отсутствие ACL или проверки каталогов.
| Что выяснить | Команда или выражение | Как читать результат |
|---|---|---|
| Кто выполняет чтение | id | Сверьте UID и дополнительные группы процесса. |
| Числовой владелец и режим | stat -c '%u:%g %a %n' -- report.txt | Имена учётных записей не мешают сравнить числовые идентификаторы. |
| Компоненты пути | namei -l -- report.txt | Ищите каталог, через который нет прохода. |
| Расширенные правила | getfacl -- report.txt | ACL mask может ограничивать эффективные права именованных записей. |
| Доступность чтения текущему shell | test -r report.txt | Статус характеризует проверку в данный момент, не будущую успешность операции. |
Короткая последовательность
Сначала сопоставьте собственные группы и данные файла. Это не изменяет режим и не требует перехода к root.
id
stat -c '%u:%g %a %n' -- report.txt
namei -l -- report.txtПроверка вывода
Права владельца, группы и остальных не складываются в одну общую сумму разрешений. Дополнительно могут действовать ACL, SELinux, параметры монтирования и ограничения среды. Проверка test -r под вашей учётной записью не описывает доступ сервисного процесса.
Границы применения
Не исправляйте ошибку автоматически режимом 777 или рекурсивным chmod. Между проверкой и открытием объект может измениться. Для диагностики службы выясняйте её фактического пользователя, группу и namespace, а затем воспроизводите именно нужную операцию.
Технические источники
Использованы для проверки поведения. Объяснения и учебные сценарии созданы для проекта.
- Руководство path_resolution(7)
- Руководство getfacl(1)
- Руководство namei(1)
Проверка текста: 2026-09-11. Нативное исполнение на всей матрице дистрибутивов ещё не подтверждено.
Примеры для собственной Linux-системы с Bash и указанными утилитами. Наличие пакетов и набор опций проверьте в установленной версии; браузерный терминал поддерживает только своё подмножество.
От материала к практике
Выберите следующую тему в каталоге Linux или проверьте знакомые команды в учебном терминале.