A partir de
man sudo
Quando o sudo executa um comando, a política de segurança especifica o ambiente de execução do comando. Normalmente, o usuário real e efetivo, o grupo e os IDs são definidos para corresponder aos do usuário de destino , conforme especificado no banco de dados de senhas, e o vetor de grupo é inicializado com base no banco de dados de grupo (a menos que a opção -P tenha sido especificada).
Por que
sudo
alterar os IDs efetivos e reais de usuários/grupos para os do usuário-alvo, em vez de apenas IDs efetivos de usuários/grupos?Os IDs de usuário/grupo efetivos não são os únicos necessários para assumir os privilégios do usuário de destino?
De https://unix.stackexchange.com/a/333245/674
alterar os IDs efetivos de usuário e grupo de um processo é apenas uma maneira de alterar os privilégios de um processo, a política de segurança definida em sudo.conf pode usar qualquer outro tipo de parâmetro na lista acima.
Para alterar os privilégios, existem outras maneiras além de alterar os IDs de usuário/grupo efetivos? O que eles são?
Obrigado.
Minha pergunta é inspirada em O `sudo` funciona em termos de alteração dos IDs efetivos de usuário e grupo de um processo?
sudo
altera os IDs de usuário reais e efetivos para restringir os privilégios do processo resultante. Alterar o id efetivo é suficiente para conceder ao novo processo os privilégios do usuário solicitado, mas fazer apenas isso deixa uma lacuna:setuid
pode então ser usado para assumir os privilégios do usuário chamador. Para evitar isso,sudo
defina também o ID do usuário real.A lista de possibilidades é fornecida na página de
sudo
manual e citada na resposta a que você está se referindo. Alguns deles têm impacto nos privilégios do processo filho: a função e o tipo SELinux, o projeto e os privilégios Solaris e a classe de login BSD.