2010年7月2日金曜日

[samba] 所属グループ数の制限を超えるとpanic

最近のSambaでは、setgroups()が失敗するとpanicとなるように実装が変更されていた。

smbd/sec_ctx.c
        if (sys_setgroups(gid, ngroups, groups) != 0 && !non_root_mode()) {
                smb_panic("sys_setgroups failed");
        }

この理由について、こちらで述べられている。
http://old.nabble.com/sys_setgroups-:-migration-issues-from-3.0-series-to-3.2-3.3-series-td23103672.html

要約すると、「setgroups()に失敗したままだと、実際にはグループの権限を持っていないためアクセスできるはずのファイルやディレクトリにアクセスできなくなるのに、それが分からずに問い合わせが多発するから。」ということ。

これが問題になりやすいのは、Solaris10の環境だと思う。
デフォルトだと、最大16グループなので、ファイルサーバー的な利用においては、あっという間に16グループに達する。
とりあえず、OSの/etc/systemに「set ngroups_max=32」を書けば32まで増やせるが、これでも足りない環境だと対策のしようがない。

Solaris10 + ZFS + Sambaを薦めたいときの、一番の弱点。

0 件のコメント:

コメントを投稿