namei: почему Linux возвращает Permission denied, хотя права на файл… — Admin Guides | Сисадмин — TG.ME

namei: почему Linux возвращает Permission denied, хотя права на файл правильные

Иногда ls -l показывает, что у файла всё нормально, но приложение всё равно получает Permission denied
Проблема может находиться не в самом файле, а в одном из каталогов по пути к нему

⏺Разбираем путь целиком

namei -l /var/lib/myapp/data/config.json


Например:

drwxr-xr-x root root /
drwxr-xr-x root root var
drwx------ app app lib
drwxr-xr-x app app myapp
-rw-r--r-- app app config.json


Сам config.json доступен для чтения, но пройти через /var/lib процесс не может, если у его пользователя нет x на одном из каталогов

⏺Почему нужен именно x

Для каталога x означает возможность проходить через него и обращаться к объектам внутри по известному имени

Поэтому такая ситуация вполне возможна

chmod 644 config.json


но приложение всё равно получает отказ, потому что один из родительских каталогов закрыт

⏺Проверяем от имени конкретного пользователя

sudo -u app namei -l /var/lib/myapp/data/config.json


Это особенно полезно для systemd сервисов, где процесс работает не от root

⏺А если обычные права выглядят нормально

Проверяем ACL

getfacl /var/lib/myapp/data/config.json


И отдельно каталоги по пути

getfacl /var/lib/myapp


Там могут находиться дополнительные правила, которые не видны через обычный ls -l

⚡️namei полезен именно тем, что показывает проблему не на уровне конечного файла, а на уровне всего пути к нему Если приложение получает Permission denied, проверять только права самого файла часто недостаточно
❤7🔥3
August 20, 2026 1.8K 48