てきとうなメモ

本の感想とか技術メモとか

sambaでforce userしているのに書き込みできない

smb.confを以下のようにして共有ディレクトリを公開していたのだけども、ubuntu24.04の環境に同じ設定を入れたら、/path/to/public以下を読むことはできるが、書き込みできなくなってしまった。

[public]
   path = /path/to/public
   read only = no
   force user = nobody
   force group  = nogroup
   public = yes

/path/to/publicのownerはnobody:nogroupであり、permissionは0755にしている。smbdのバージョンは

$ smbd -V
Version 4.19.5-Ubuntu

permissionを0777にすれば書き込めるが、あまりやりたくない。この時書き込んだファイルのownerはnobody:nogroupになるので、nobody:nogroupで書き込もうとはしているようだ。

どうもgroupにも書き込み権限をつけないと書き込みできないようだ。この程度であれば許容なのでグループに書き込み権限を追加する。

$ chmod -R g+w /path/to/public

ついでに、sambaが作成したファイルやディレクトリのマスクも同様のpermissionにする設定をsmb.confに追加する

[public]
   path = /path/to/public
   read only = no
   force user = nobody
   force group  = nogroup
   create mask = 0660
   directory mask = 0770

これでファイルを書き込むことができるようになった。