[Linux]ディレクトリのパーミッションの実行権限(x)の意味とは?
実は意外と知られていない、ディレクトリのパーミッションの意味
(私が知らなかっただけです。ごめんなさい。)ディレクトリのパーミッションで、「実行権限(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ファイルに読取権限を付与する必要があります。
カテゴリ:
Linux