Samba usershare 機能でオーナーやパーミッションを変更する

ubuntu jauntynautilus から「共有のオプション」で Samba の設定をすると、書き込み時にファイルの属性が nobody:nogroup 744 となってしまい Linux 側でファイルの取り扱いが面倒になる。

設定ファイルの場所

  • Samba 3.0.20 以降の usershare 機能で実現されており、/etc/samba/smb.conf ではなく、/var/lib/samba/usershares/ に設定ファイルが作られる
  • どこを共有設定したか忘れてしまったときはここを見る

nobody:nogroup を変更する

  • /var/lib/samba/usershares/ に設定を追加しても動作しないらしい。
  • /etc/samba/smb.conf の [global] セクションに設定を書けば(共通設定として)反映される
force user = username

新規ファイルのパーミッションを変更する

create mask で AND でビットを落とし、force create mode で OR で強制的にビットを付与できる

create mask = 0644
force create mode = 0644

新規ディレクトリのパーミッションを変更する

directory mask = 0755
force directory mode = 0755

メモ

パーミッションを揃えたいとき便利。

find -type f -print0 | xargs -0 chmod 644
find -type d -print0 | xargs -0 chmod 755