Imagine for a moment that Solaris provided a pair of extra calls:
set_auxgroups_max(int max)

The first allows the aux group list to be as long as you like.
The second makes an existing member of the aux groups "active",
where active really means that it's moved to the first 8, 16 or
32. Both require root permissions.

Does that help?

David Collier-Brown, | Always do right. This will gratify
Sun Microsystems, Toronto | some people and astonish the rest | -- Mark Twain