namei は、指定したパスを先頭から末端まで辿り、ディレクトリ・シンボリックリンク・通常ファイルなど各要素の種類を段階的に表示します。シンボリックリンクは解決過程もインデント付きで示され、リンクループの検出にも役立ちます。(man7.org)
実務では、「どこでリンクが張られているか」「どのディレクトリに権限問題があるか」を素早く特定したいときに使います。(man7.org)
構文(Syntax)
namei [OPTIONS] PATHNAME...
- シンボリックリンクに遭遇すると、そのリンク自体と解決先をインデントして表示します。(man7.org)
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
-l, --long | ロング形式(-m -o -vと同等:モード/所有者を縦揃えで表示) | namei -l /bin/ls (man7.org) |
-m, --modes | 各要素のパーミッションをls風(rwxr-xr-x等)で表示 | namei -m /etc/alternatives/editor (man7.org) |
-o, --owners | 各要素の所有者・グループを表示 | namei -o /var/log/syslog (man7.org) |
-v, --vertical | -m/-oの表示を縦方向に揃えて見やすく | namei -v -m -o /usr/bin/python (man7.org) |
-n, --nosymlinks | シンボリックリンクを辿らない(リンク先へ進まない) | namei -n /bin/ls (man7.org) |
-x, --mountpoints | マウントポイントのディレクトリをdではなく**D**で表示 | namei -x / (man7.org) |
-Z, --context | セキュリティコンテキスト(SELinux 等)を表示(非対応ビルドでは?) | namei -Z /var/www/html (man7.org) |
-h, --help / -V, --version | ヘルプ/バージョン表示 | namei -h / namei -V (man7.org) |
種別の記号:
d=ディレクトリ、l=シンボリックリンク、-=通常ファイル、s=ソケット、b=ブロック、c=キャラクタ、p=FIFO、?=エラー、先頭行のf:は解決中のパス名。(man7.org)
実行例
基本:パスの各要素をたどって表示
説明:スナップショットとして、末端までの解決過程を確認します。
コマンド
namei /var/log/syslog
出力例(例)
f: /var/log/syslog
d /
d var
d log
- syslog
シンボリックリンクの解決を可視化
説明:途中にリンクがあるパスを辿り、リンク先をインデントして表示します。
コマンド
namei /bin/ls
出力例(例)
f: /bin/ls
d /
l bin -> usr/bin
d usr
d bin
- ls
(/bin が usr/bin へのリンクである環境の一例)
権限と所有者をまとめて確認(ロング形式)
説明:各要素のパーミッション・所有者・グループを縦揃えで見やすく表示します。
コマンド
namei -l /etc/alternatives/editor
出力例(例)
f: /etc/alternatives/editor
drwxr-xr-x root root /
drwxr-xr-x root root etc
drwxr-xr-x root root alternatives
lrwxrwxrwx root root editor -> /usr/bin/vim.basic
drwxr-xr-x root root usr
drwxr-xr-x root root bin
-rwxr-xr-x root root vim.basic
(man7.org)
リンクは辿らずリンク自体を確認
説明:-n でリンク先へ進まず、リンクそのものだけを確認します。
コマンド
namei -n /bin/ls
出力例(例)
f: /bin/ls
d /
l bin -> usr/bin
- ls
(man7.org)
マウントポイントを強調表示
説明:-x でマウントポイントのディレクトリが D として表示されます。
コマンド
namei -x /boot/grub
出力例(例)
f: /boot/grub
d /
D boot
d grub
(/boot が別パーティションな環境の一例)(man7.org)
エラー例:リンクループ(「多すぎるシンボリックリンク」)
説明:相互リンクを作ると、最大リンク数超過として検出されます。
コマンド
ln -s a b && ln -s b a
namei a
出力例(例)
f: a
l a -> b
l b -> a
namei: maximum number of symbolic links exceeded
(man7.org)
関連コマンド
ls:ファイル種別や権限の表示。namei -m/-oの表示形式はls風。(man7.org)stat:単一ファイルの詳細なメタデータを表示。(man7.org)readlink:シンボリックリンクの中身(リンク先)を表示。realpath:最終的な絶対パスを出力(全リンクを解決)。
備考
- 対象:Linux(util-linux)の実装を前提としています。BSD系にも同名コマンドがありますが、オプションが異なる場合があります。(man7.org)
- 権限:到達できないディレクトリや読めない要素があると
?が表示されます。必要に応じてsudo namei -l ...で権限を確認してください。(man7.org) - セキュリティコンテキスト:
-Zはビルド時オプションです。非対応ビルドでは?を表示します。(man7.org) - 記号の読み方:
Dはマウントポイント(-x指定時のみ)。f:は解析対象のフルパスを示すヘッダ行です。(man7.org)

コメント