Não é possível, fora do próprio processo. Veja esta pergunta do SuperUser para mais discussão e uma resposta envolvendo o uso de um depurador para anexar ao processar e executar setgid()
de dentro dele.
O motivo pelo qual é necessário um novo login para realizar as novas associações de grupo é que login
(ou sshd
ou qualquer outra coisa) é executado como raiz e deve definir UID e GID de processo para seu processo de shell, o que significa já chamando setuid
e setgid
.