暫く触っていないうちにすっかり分からなくなっていた setuid 系のパーミッション。 きっかけは、geno_squidsでsetuidするのを諦めた。が、fmlでは特に何もせずともML配下のvar/logなどに、fmlのユーザーで書き込めている。何故だ? で、fmlの場合、ML配下のvarやspoolは、 drwx--S--- 2 fml fml 4096 Jan 24 22:09 spool/ drwx--S--- 2 fml fml 4096 Jan 24 22:09 tmp/ drwx--S--- 5 fml fml 4096 Jan 24 22:09 var/ のように"S"がセットされる。→このフラグの意味を完全に忘れていた。というか、そもそも調べなかったのか。 "S"フラグは以下の形で設定できる。 $ chmod 0000 hoge $ chmod g+s hoge 解説は以下を参照。 http://blog.livedoor.jp/dankogai/archives/50777535.html ディレクトリにつけることで、ディレクトリのグループでファイルを作成できるらしい。委細は不明だが、だからfmlのvar, spoolにはSフラグが立っているのか・・・?しかし、Sフラグだけではファイルの作成はできないはず。実行権も付与しないと・・・。 っつーか、素でUNIXのパーミッションを忘れている自分が居る。