「Linuxでファイルのアクセス権(パーミッション)以外のところでファイルへのアクセス制限がかかっているようなのだけどどうなっているの?」という質問があった。そりゃあ ACL だな。
ls の表示結果がこんな感じになる。11桁目に "+" がついているところが ACL が適用されているところ。
drwxrwxr-x 4 root root 4096 8月 10 2009 TEST1 drwxrwxr-x+ 15 root root 4096 10月 20 2011 TEST2 drwxrwxr-x 23 root root 4096 4月 26 13:12 TEST3 drwxrwxr-x+ 33 root root 4096 11月 10 2012 TEST4
ACL の中身を確認するのは getfacl
$ sudo getfacl TEST2 # file: TEST2 # owner: root # group: root user::rwx user:test01:rwx group::rwx mask::rwx other::r-x default:user::rwx default:user:test01:rwx default:group::rwx default:mask::rwx default:other::r-x
これと同様の設定をするには setfacl を使う
$ sudo setfacl -R -d -m u:test01:rwx TEST02
-R でディレクトリを再帰検索して、-d でデフォルト値とする。デフォルトが入っていると、その後そのディレクトリに追加作成されたファイルなどは ACL を引き継ぐ動作をする。