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