
Entendo o fato de que, no caso do programa setuid, o ptrace não funciona bem sem privilégios de root. Então, como o gdb funciona com executável habilitado para setuid bit e privilégio não-root?
Para explorar, testei-o com um executável exec("/bin/id","id",NULL) simples.
No caso de executar o executável no gdb com privilégio não root, a execução foi bem-sucedida, mas o euid não mudou para root (= 0). Então, suspeitei que quando o bit setuid está definido, dentro do gdb, o binário executável está sendo copiado como um arquivo temporário antes da execução. Isso parece estar correto, pois quando a permissão de "leitura" do executável é removida, o gdb imprime "Permissão negada" quando o usuário não root usa o gdb para o executável.
Alguém que conheça bem o gdb poderia confirmar ou corrigir essa ideia?
Obrigado pela ajuda!
ps Além disso, usei gdb (Debian 8.3.1-1) 8.3.1