Могут ли два процесса присоединиться к одному и тому же PID через ptrace - PullRequest
0 голосов
/ 02 октября 2018

Итак, название говорит само за себя.

Возможно ли, что у одного процесса есть два трассировщика?

Я играю с ptrace, и я вижу это всякий раз, когда кто-то присоединяется к процессутогда в / proc // статус под TracerPID будет PID трассера.Однако возможно ли иметь два трассера?

У меня есть две программы (трассировщик и трассировка).И я запустил трассировку в режиме отладки, а затем я запустил трассировщик и получил ошибку Операция не разрешена (даже с правами root).

С уважением, golobich

1 Ответ

0 голосов
/ 02 октября 2018

Они не могут.Это косвенно подтверждается на странице руководства ptrace:

   EPERM  The  specified  process cannot be traced.  This could be because
          the tracer has insufficient privileges (the required  capability
          is  CAP_SYS_PTRACE);  unprivileged  processes  cannot trace pro‐
          cesses that they cannot send signals to or  those  running  set-
          user-ID/set-group-ID  programs,  for  obvious reasons.  Alterna‐
          tively, the process may already be being traced, or (on  kernels
          before 2.6.26) be init(1) (PID 1).
...