暫く触っていないうちにすっかり分からなくなっていた 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のパーミッションを忘れている自分が居る。
コメント