Такая идея возникла у меня...
На сервере создать файл, в котором описать пользователей и в каких группах они состоят.
group1:user1 user2 user3
group2:user1 user2 user3
...
Может быть даже как-то переслать этот файл клиентам (puppet).
На клиенте куда-нибудь в автозапуск засунуть скрипт который будет читать этот файл и делать 'gpasswd -a user1 group1'.
Вроде бы неплохо... но, если пользователя нужно убрать из какой-то группы ? тогда нужно ещё думать... вводить дополнительные проверки и т.д. Опять же, если пользователей будет очень много... насколько система задумается при старте ?..
Не знаю насколько всё это выглядит криво... и насколько это всё осуществимо...