「samba」カテゴリーアーカイブ

FreeBSD12.0Rとzfsでsticky bitが無効である件

某所のファイルサーバを更新するため、FreeBSD12.0-RELEASEとzfsを使ってsambaを動かす下準備をしていたのだけれど、

「メンバーの誰もが書き込めて、メンバーの誰もが読み出せて、しかしフォルダやファイルの削除だけは作成者本人しか出来ない領域」

を作ろうとしてもなかなか上手く行かない。

ああそうだ、こういう場合はディレクトリにsticky bitを立てるんだったなと思ってchmod 1777 sharedとかやっても、やっぱり他人にもファイルを削除できてしまう。

最初はsamba側の設定がおかしい(force user=誰々とかね)のかと思っていたけど、そうでもない。散々試行錯誤していたところ、zfsのACLの問題じゃないかと思い至った。

https://lists.freebsd.org/pipermail/freebsd-stable/2014-July/079340.html

キタ――(゚∀゚)――!! まさにこれですよ!

…なるほどね。従来のchmodじゃあダメなのね。(でも/tmp/はsticky bitが上手く動いてる気もするんだけどまあ気にしない)

という訳で、samba共有フォルダに対して↑のようにaclを設定してあげたら希望通りの動作になったような気がしています。(後方互換的にsticky bitが動作するようにしといて欲しいけどまあその辺りは色々と事情があるんでしょう)

以上、個人的( ..)φメモメモ

smb.confのアクセス制限落とし穴

色々な権限を持っている複数のユーザーが存在している状況下で、ユーザグループごとにアクセス制限を掛けているsamba共有フォルダの設定方法。

複数のユーザが同一の権限でアクセスできる共有フォルダ(force user/force group)のアクセス権限を、valid users=で設定するとうまく行かない。

その場合は、invalid usersを用いて排除するユーザを記述する。システムのグループで分けて、invalid users = +グループ名で設定すると楽。