Tru64 UNIX 資料一覧
任意のアカウントでログインすると「initgroups: <ユーザ> is in too many groups」というエラーが出る
2007/8/17更新
対応バージョン: 5.0A,5.0A
そのアカウントが所属している2次グループが多すぎる。
1つのユーザが所属できるグループは1次/2次グループ合わせて最大32個。
これは、以下の理由のため`仕様'となっている。
あるユーザでログインしたりスイッチユーザしたりすると、そのユーザのグループリストを得るためにinitgroups()ライブラリが呼び出される。
initgroups()中ではNGROUPS_MAXというdefine値を使ってグループリストの最大値を決めていてそれ以上のグループはグループファイル(/etc/group等)に登録してあっても無視される。この時画面には「initgroups: <ユーザ名> is in too many groups」というメッセージが表示される。
NGROUPS_MAXは/usr/include/sys/syslimits.h中で32と定義されているがこの値を増やしたい場合initgroups()をコンパイルし直さないといけなくなる。また、initgroups()はlibc.soに含まれているので結果的にlibc.soを置き換えることになってしまう。
したがってOS製造元としてはこのようなリコンパイル行為はできない、つまり`仕様'となる。
1つのユーザにたくさんのグループを所属させようとしてもこの制限があるので注意が必要である。