[Linux]ディレクトリのパーミッションの実行権限(x)の意味とは?

実験してみた

rootでログインして、
# mkdir /tmp/foo/
# echo "hello" > /tmp/foo/hello.txt
デフォルトでは、下記のようなパーミッションになります。

tmp ... 777
foo ... 755
hello.txt ... 644

さてこの場合、一般ユーザはhello.txtの中身を見れるでしょうか?

$ cat /tmp/foo/hello.txt
hello

見事閲覧できました。
ここまではOKですね。

では次に、fooディレクトリの実行権限をはく奪してみましょう。
rootで、
# chmod 0754 /tmp/foo

一般ユーザで、
$ cat /tmp/foo/hello.txt
cat: /tmp/foo/hello.txt: 許可がありません

あらら、hello.txtの中身が見れなくなりました。


というわけで、ディレクトリの実行権限が実は「アクセス権」であることが、おわかりいただけたと思います。

ちなみに、例えば
/var/log/httpd/access_log
のようなファイルの中身を見るには、
'var'と'log'と'httpd'の各ディレクトリに実行権限を付与した上で、acccess_logファイルに読取権限を付与する必要があります。
カテゴリ: