Gostaria de poder anexar a um processo com o gdb. O processo tem o meu uid, mas o arquivo executável é set-gid. Então, aparentemente, estou aprendendo sobre o PAM. Entendo que qualquer processo ligado a um processo set-gid precisa de CAP_SYS_PTRACE (ou de ser o superusuário).
Apenas no caso de haver alguma dúvida:
$ cat /proc/sys/kernel/yama/ptrace_scope
0
Seguindo o conselho em pam_cap (8), procurei por /etc/security/capabilities.conf
. No LTS 16 que não existe, mas o diretório faz, então eu criei o arquivo:
CAP_SYS_PTRACE jklowden
Também anexei isso a /etc/pam.d/common-auth
:
# Cf. advice in pam_cap(8)
auth optional pam_cap.so
No entanto, um novo login não pode ser anexado ao processo set-gid.
Rant : sudo -g $gid -p $pid
não ajuda. Como diz o bom manual, processos não privilegiados não podem rastrear processos para os quais não podem enviar sinais ou aqueles que executam programas set-user-id / set-group-id, por razões óbvias . Não é realmente óbvio porque eu não deveria ser capaz de rastrear um processo que eu possuo de um processo no mesmo grupo, simplesmente porque o arquivo está marcado como set-group-ID. A política incentiva a depuração como o superusuário, que é inegavelmente menos seguro. [fim rant]
Muito obrigado.