Para executar um comando como outro uid, usa-se su
. A lista de grupos suplementares não é especificada na linha de comando, mas sim de arquivos de configuração ( /etc/passwd
, /etc/group
), etc.
Qual ferramenta devo usar para me transformar em uid arbitrária com grupos suplementares arbitrários? A ferramenta não deve ler nenhum arquivo, basta fazer setuid/setgid/setgroups
e execve
meu comando.
Espero algo assim:
# su_ll 10137 --groups 10137,4002,4006,4010 /usr/bin/id
uid=10137 gid=10137 groups=10137,4002,4006,4010
Caso de uso: iniciando o shell com os privilégios do aplicativo no Android. O su
ou run-as
simples não é suficiente, pois não preenche os grupos necessários, resultando na falta de acesso à rede quando o aplicativo tiver acesso à rede.