Linux: ディレクトリのPermissionについて

ディレクトリのPermissionについて、rwxのどれがどのような操作に影響しているのか気になったので試してみた。次のようなディレクトリを/tmp/testに用意。

# ll /tmp/test
drwx--x--x  2 root root 4096 11月  8 10:52 exe/
drwxr-xr-x  2 root root 4096 11月  8 10:52 exe_read/
drwx-wx-wx  2 root root 4096 11月  8 10:52 exe_write/
drwxr--r--  2 root root 4096 11月  8 10:52 read/
drwxrw-rw-  2 root root 4096 11月  8 10:52 read_write/
drwxrwxrwx  2 root root 4096 11月  8 10:52 read_write_exe/
drwx-w--w-  2 root root 4096 11月  8 10:51 write/

次のようなコマンドを一般ユーザで実行して結果を確認する(今回は一番右側のothersのPermissionを参照する)

testdir=exe

ll /tmp/test/${testdir}

cat /tmp/test/${testdir}/read.txt

touch /tmp/test/${testdir}/touch.txt

chmod 777 /tmp/test/${testdir}

echo hogehoge >> /tmp/test/${testdir}/read.txt

次のような結果になった。

drwx--x--x  2 root root 4096 11月  8 10:52 exe/
 OK: cat echo
 NG: ls touch chmod

drwxr-xr-x  2 root root 4096 11月  8 10:52 exe_read/
 OK: ls cat echo
 NG: chmod touch

drwx-wx-wx  2 root root 4096 11月  8 10:52 exe_write/
 OK: cat touch echo
 NG: ls chmod

drwxr--r--  2 root root 4096 11月  8 10:52 read/
 OK: ls(ファイル名のみ、ファイルサイズ等は表示できず)
 NG: cat touch chmod echo

drwxrw-rw-  2 root root 4096 11月  8 10:52 read_write/
 OK: ls(ファイル名のみ、ファイルサイズ等は表示できず)
 NG: cat touch chmod echo

drwxrwxrwx  2 root root 4096 11月  8 10:52 read_write_exe/
 OK: ls cat touch echo
 NG: chmod

drwx-w--w-  2 root root 4096 11月  8 10:51 write/
 OK: 無し
 NG: ls cat touch chmod echo

厳密な定義は調べないが、試した結果としては次みたいな感じ。
x (exe)の権限がある: 既存のファイルに追記が出来る、ファイルの中身を表示できる
r (read)の権限がある: lsが出来る(ディレクトリのListingが出来る)、xが無いとディレクトリ内のファイル情報は引き出せない
w (write)の権限がある:xとセットで設定しておくとファイルを作成できる(ディレクトリ内のファイル操作ができる)

xだけでcatとechoが出来るのは盲点。それぞれrとwが必要と思ってた。。。