Both setuidgid and runuser behave as I would expect and drop the supplemental groups of the root user:
# runuser padraig -c "id -G" 500 10 489 491 # ~padraig/git/coreutils/src/setuidgid padraig id -G 500 10 489 491 However chroot does not: # chroot --user=padraig: / id -G 500 0 1 2 3 4 6 10 # chroot --user=padraig / id -G 0 500 1 2 3 4 6 10 That's at least unexpected and could be considered a bug I think. If I'm missing nothing I'll send a patch soon. thanks, Pádraig.