-
Ao definir corretamente um bit SUID, define o ID de usuário efetivo do novo processo para o proprietário do arquivo de programa que está sendo executado. Não há conceito de aumento ou redução de privilégios. Muitas vezes o usuário qual "suid" é a raiz, mas pode ser legitimamente qualquer outro, e realmente não muda o conceito de SUID, quando você escolher outro, além de alguns usuários terem acesso a Recursos. No entanto, o usuário root é um pouco especial e a página man do setuid explica as sutis diferenças. Eu não acho que há um nome especial para mudar para um usuário não-root, e eu nunca associei suid significado subindo em privilégio, apenas mudando o usuário.
-
Como você mesmo está desenvolvendo o mestre que é executado como root pode setuid para qualquer usuário depois de forking mas antes de executar o novo processo, eu não vejo que o bit suid tem que ser usado em executável em tudo, e incidentemente se você não fizer isso, então se qualquer usuário antigo correu o jogador, já que o executável não é suid, eles não seriam capazes de executar corretamente, pois o setuid falhará se eles não forem root. Para mim isso parece melhor segurança, do que usar suid bits em arquivos executáveis.
--- editar 1
Assim, seu gerente (executando como real e efetivo uid = 0) inicia o jogador e você codifica / controla o jogador (não o gerenciador). Se você não fizer nada de especial, então o jogador rodará com uid real + efetivo = 0 e você quer evitar isso.
Você pode simplesmente trocar de player, sem SUID no player, sem necessidade.