あるファイルにアクセスするには、パスの途中のディレクトリ達にも、全てアクセス権(パーミッション)がなければならない。
いちいち ls -ld しても良いのだけれど、全部一括で表示できるコマンドがあるね。という小ネタ。
例えば /home/testuser1/public_html/
に対して、「全ディレクトリに o+x が付いていること」を調べてみる。
ls -ld を使う場合
lsコマンドの利用例
[testuser1@localhost ~]$ ls -ld / /home /home/testuser1 /home/testuser1/public_html
drwxr-xr-x. 17 root root 4096 Oct 19 13:02 /
drwxr-xr-x. 4 root root 36 Oct 24 20:28 /home
drwx-----x 3 testuser1 testuser1 97 Oct 24 20:34 /home/testuser1
drwxrwxr-- 2 testuser1 testuser1 23 Oct 24 20:58 /home/testuser1/public_html
namei を使う場合
util-linuxに含まれる namei というコマンドを使うと、こんな感じ。
nameiコマンドの利用例
[testuser1@localhost ~]$ namei -m /home/testuser1/public_html/
f: /home/testuser1/public_html/
drwxr-xr-x /
drwxr-xr-x home
drwx-----x testuser1
drwxrwxr-x public_html
わざわざパスを分解しなくても、一目瞭然で確認できた。
少し楽になった。
おまけ
途中に symbolic link を含む場合、インデントされ、わかりやすい表示になる。また -x
オプションでマウントポイントを"D"表示にできる。
nameiコマンドの利用例2(symlink入り)
[root@localhost ~]# namei -m -x /home/testuser1/public_html
f: /home/testuser1/public_html
Drwxr-xr-x /
drwxr-xr-x home
drwx------ testuser1
lrwxrwxrwx public_html -> public_html.new
drwxr-x--- public_html.new
ういやつじゃ。
※ 上記表示は、CentOS7 で実行した場合のもの。