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つのユーザにたくさんのグループを所属させようとしてもこの制限があるので注意が必要である。