Eu acho que sua solução está bem. Em um shell script você pode usar:
(umask 022;exec sg wheel )
Teste com:
umask 002
umask
( umask 022; exec sg wheel umask)
umask
Para uma solução alternativa, consulte o meu post semelhante: Como defino a estrutura de permissões para vários usuários que estão editando vários sites em / var / www no Ubuntu 9.10?