С чего начать Первые шаги трек · 15 ступеней
Linux Labs

namei — права на каждом шаге пути

5 мин Ubuntu 24.04 · util-linux 2.39

Команда namei разбирает путь по частям и показывает тип, права и владельца каждого каталога до самого файла.

Шпаргалка

7 команд Версия для печати
  • namei -l /etc/nginx/nginx.conf тип, права, владелец каждой части
  • namei -m /var/www/html/index.html только права
  • namei -o /srv/app/data только владелец и группа
  • namei /bin/sh куда ведут символические ссылки
  • namei -n /bin/sh не раскрывать ссылки
  • namei -x /home/student отметить точки монтирования (D)
  • sudo -u www-data namei -l /srv/site/index.html путь глазами службы

Обзор

Чтобы открыть файл, процесс проходит каждый каталог пути, и на каждом ядро проверяет право x. ls -l показывает права только одной части. namei идёт по всему пути и печатает строку на каждый каталог и на сам файл:

text
student@ubuntu:~$ namei -l /etc/nginx/nginx.conf
f: /etc/nginx/nginx.conf
drwxr-xr-x root root /
drwxr-xr-x root root etc
drwxr-xr-x root root nginx
-rw-r--r-- root root nginx.conf

Первая строка — разбираемый путь. Дальше в каждой строке тип и права (d каталог, - файл, l ссылка), владелец, группа и имя части. Как читать права — permissions.

Если дальше пройти нельзя, namei пишет причину на месте той части, до которой не добрался:

text
student@ubuntu:~$ namei -l /root/.bashrc
f: /root/.bashrc
drwxr-xr-x root root /
drwx------ root root root
                      .bashrc - Permission denied

У каталога root для остальных ---: без x в него не войти, и .bashrc уже не проверить. Сам namei права не оценивает, он только показывает их. Какая тройка действует для учётной записи, решаешь по владельцу и группе в строке.

Ключи

6

-l — то же, что -m -o -v вместе; чаще всего достаточно его. Полный список — man namei.

Ключ Что делает Пример
-l --long Длинный формат — тип, права, владелец и группа каждой части пути. namei -l /etc/nginx/nginx.conf
-m --modes Показать права каждой части. namei -m /var/www/html/index.html
-o --owners Показать владельца и группу каждой части. namei -o /srv/app/data
-n --nosymlinks Не раскрывать символические ссылки. namei -n /bin/sh
-x --mountpoints Отметить каталоги-точки монтирования буквой D. namei -x /home/student
-v --vertical Выровнять права и владельцев в колонки. namei -mov /srv/app

Ничего не найдено. Попробуй запрос короче.

Рецепты

3

Найти, где служба теряет доступ

bash
sudo -u www-data namei -l /srv/site/2026/q4/index.html

Запуск от имени службы останавливается ровно на той части, куда ей нет прохода: строка с Permission denied и есть ответ. Чинят права этой части, а не файла — см. chmod-chown.

Сравнить права частей пути вручную

bash
ls -ld / /srv /srv/site /srv/site/2026
stat -c '%A %U:%G %n' /srv/site/2026/q4/index.html

ls с -d и stat покажут то же по отдельности — удобно, когда частей мало.

Куда на самом деле ведёт путь

text
student@ubuntu:~$ namei /bin/sh
f: /bin/sh
 d /
 l bin -> usr/bin
   d usr
   d bin
 l sh -> dash
   - dash

Без -l namei показывает только типы и раскрывает каждую ссылку с отступом: /bin/sh на деле — /usr/bin/dash. Подробнее о ссылках — links.

Неполадки

4

имя - No such file or directory

Части пути с этим именем нет. Строки выше существуют — опечатка или неверный регистр именно здесь. Проверь содержимое предыдущего каталога: ls -la каталог.

имя - Permission denied

У каталога строкой выше нет x для того, кто запустил namei. Посмотри его тройку для своей учётной записи (владелец, группа или остальные) и запусти namei от нужного пользователя через sudo -u.

По namei всё открыто, а доступа нет

namei не показывает ACL, AppArmor и группы, которые процесс получил при запуске. Проверь getfacl путь (см. acl); после usermod -aG нужен новый вход или перезапуск службы — старый процесс живёт со старым списком групп.

У файла права 644, а прочитать его нельзя

Права файла проверяются последними. Если закрыт любой каталог выше, до файла очередь не доходит, — найди этот каталог по namei -l.

См. также

  • permissions — как читать rwx и какая тройка действует.
  • chmod-chown — поправить права или владельца найденной части пути.
  • ls — права одной части: ls -ld каталог.
  • stat — права, владелец и времена одного файла.
  • acl — дополнительные права, которых не видно в namei.
  • links — символические и жёсткие ссылки.
Загрузка…