仕事の関係で、Windows2003サーバをsambaに置き換えちゃおうという話が出た。
んで、仮想環境のFreeBSDにsambaいれてあれこれ試してたのだけれど、
どうやってもグループ毎にACLが設定できない。

たとえば、管理職と一般社員、監査役なんかでグループを分けて、
Aフォルダは管理職と一般社員がアクセスできて、
Bフォルダは管理職だけ、アクセスできる。みたいな話をやりたい。
アクセス権をそれぞれ振ってみたいな話をやりたい、
vfs object の acl_tdb と acl_xattr を見つけた時に、楽勝じゃん。と、思ったのだけれど。

ふつーに設定して、Windowsから共有フォルダを見て、セキュリティタブから権限を
設定しようとすると……
「アクセスが拒否されました」
「アクセスが拒否されました」
「アクセスが拒否されました」

と、一向に進まない。
こういう時って、フォルダ別に共有を作って、@groupみたいにグループ全部
書いていく方法が一般的なのだろうか?

で、調べる、smb.confのマニュアルやら、netコマンドのリファレンスだのを
しらみつぶしに見て、試して、試して、ためして、タメシテ
が、やっぱりできない。

で、ACLの権限関係のログを吐かせてみることにした

log level = 2 acls:100

しかし、なんでsambaのログってこんなにカオスなんだろうか……

結局、それからさらに検索して、こんな情報に行き着いた。
そのあと、なんかそれっぽい予感がしたので、さらに単語を変えて検索。
この情報に行き着く。

行き着いた情報だけまとめると、ACL設定時のACEが3つ以外の場合、
その要求はコケる…………
試した結果、vfs objects の acl_tdb、acl_xattr があろうとなかろうと、
このルートに入り、問答無用で失敗する。
ちなみに、このコード、現行最新版の3.6.5ではもちろん、4.0のAlpha22でも入ってる。

失敗時に投げてた、ACE情報はどんなもんかと、”canon_ace index”で引っかけた
結果が以下。

canon_ace index 0. Type = allow SID = S-1-1-0 other SMB_ACL_OTHER ace_flags = 0x0 perms —
canon_ace index 1. Type = allow SID = S-1-22-2-0 gid 0 (wheel) SMB_ACL_GROUP_OBJ ace_flags = 0x0 perms —
canon_ace index 2. Type = allow SID = S-1-5-21-131142492-4263224124-848975064-1000 uid 0 (root) SMB_ACL_USER_OBJ
ace_flags = 0x0 perms rwx
canon_ace index 3. Type = allow SID = S-1-5-32-544 gid 10000 (admin) SMB_ACL_GROUP ace_flags = 0x3 perms r-x
canon_ace index 4. Type = allow SID = S-1-5-32-551 gid 10001 (backup) SMB_ACL_GROUP ace_flags = 0x3 perms r-x
canon_ace index 5. Type = allow SID = S-1-5-21-131142492-4263224124-848975064-1001 gid 11000 (hoge) SMB_ACL_GROU
P ace_flags = 0x3 perms r-x
canon_ace index 6. Type = allow SID = S-1-22-2-0 gid 0 (wheel) SMB_ACL_GROUP ace_flags = 0x7 perms rwx

ACEが7つ。そりゃ成功するわけないわ。

vfs_object の未設定状態や、acl_xattr なら、無制限にACE書き込ませるのは
なんとなくヤバいような気がするのだけれど、 acl_tdb はファイルに書くんだから、
大丈夫だと思うんだけどなぁ……

とりあえず、ソースを書き換えて、portsをちょろまかし、portupgradeで更新。
ぱっと見のACLのアクセス権がきちんと設定できていることを確認する。

業務時間が終わったので、権限がきちんと動くかは未確認。
まぁ、おいおいやればいいさ。

けど、これ、エロイ人に説明できんわ。
動作保障がものっそい面倒くさいもん。

※追記
CentOS5.8 だと、同じ権限要求があっさり通る。
ログを見ると、ACEが3つにマージされて成功するようになってるようだ。

全然そんなことなかった、やっぱダメだ。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です