2007年8月29日水曜日

create maskを775にしたのに。

sambaでcreate maskを775にしたのに、何故か実行権限だけ外れてしまう。

この問題の解として、2ちゃんねるの過去ログで以下を見つけた。
http://www.kp2.jp/cgi-bin/2chbbs/test/read.cgi/nono/990671952/421-520
UNIX と DOS(Windows) のファイルモードの違いを吸収する
ためにそういうことが起こる。

(1) DOS には実行権限なんていうモードは存在しないので、
UNIX 側でも当然記録しない。
(2) 逆に DOS のアーカイブ属性は UNIX に存在しないので
samba はこれを UNIX 側ではファイル所有者の実行権限に
マッピングすることで、違いを吸収しようとする。

(1)と(2)の合わせ技で、mask が 777 のとき 766 になる。

問答無用で 777 にしたいなら、 smb.conf に
force create mode
force directory mode
あたりを設定すればいい。

普通はセキュリティのことも考えて 777 にはしないけど、
そうしないと不便だと文句いう奴らもいるからなあ。

なるほど。
ただ、force create modeやらを使うと、Windowsのファイルプロパティなどで設定する
「読み取り専用」だったり「隠しファイル」だったりを設定できなくなるので、実行権限は諦めることにした。

0 件のコメント:

コメントを投稿