sambaサーバーで、フォルダは作れるのに他のユーザが作ったフォルダへの書き込みができない場合のsmb.confの設定

解決策:

 force directory mode = 2775 と設定してみる。


現象:

普通に・・・・というのもアレなんですが、

apt-get install samba

でインストールして、smb.confの設定も適当に書いて、
ユーザーも作って、フォルダのパーミッションも775とかで揃えて、
いざ複数ユーザーでテストしてもらったら、
共有フォルダの直下にはファイルもフォルダも作れるのだけれど、
他のユーザが作ったフォルダの中には、入れるけど、中のファイルを更新できない。

ちなみに、共有フォルダの直下のファイル(他のユーザが作ったやつ)は、
みんなが更新できる。

??

パーミッションなんだろうな、と思うものの、
すべてのファイルが775のパーミッションを持っていて、
すべてのユーザが同じグループに所属してる。

うーんー。

で、いろいろ調べた結果、
グループのパーミッション
"0775"にするのではなく、
"2775"にする、と。

パーミッションをなんで4桁の"0755"みたいに書くのかなーと
思ってはいたのですが、ちゃんと意味があるのですね。。。(そらそうか。)

2xxxのパーミッションにすることで、作成したユーザのグループではなく、
親フォルダのグループが設定される。のだそうで。

これ以外にもいろいろ解決策がありそうな気がしてならないですが、
これでとりあえず解決したので、まーいーかー、と。


参考になったサイト:

今さら聞きづらい「ファイルパーミッション」について
http://blog.fenrir-inc.com/jp/2012/02/file_permission.html

最終的なsmb.confの設定:

[Share_Folder]
 path = /home/Share
 browsable = yes
 writable = yes
 read only = no
 guest ok = no
 create mask = 760 # ファイルのパーミッションの上限値
 force create mode = 760 # 強制的に設定されるファイルのパーミッション
 directory mask = 2775 # フォルダのパーミッションの上限値
 force directory mode = 2775 # 強制的に設定されるフォルダのパーミッション
 force group = ShareUser
 share modes = yes
 vaild users = @ShareUser