У меня есть система, которая использует методы C как функции в базе данных Postgres. Когда я пытаюсь запустить GDB с моей учетной записью пользователя, я получаю это:
ptrace: Operation not permitted
Это похоже на разрешение. Кажется, это сработало, когда я запустил gdb в качестве пользователя "postgres". Я хотел бы продолжить запуск postgres как пользователь "postgres" и не должен su postgres
, когда я хочу отлаживать. Могу ли я как-нибудь предоставить моей учетной записи разрешение «ptrace» для рассматриваемого процесса? Добавление себя в группу «postgres», похоже, не помогло.
РЕДАКТИРОВАТЬ: Я нашел это на странице man ptrace:
EPERM The specified process cannot be traced. This could be because
the parent has insufficient privileges (the required capability
is CAP_SYS_PTRACE); non-root processes cannot trace processes
that they cannot send signals to or those running set-user-
ID/set-group-ID programs, for obvious reasons. Alternatively,
the process may already be being traced, or be init(8) (PID 1).
Так как я могу дать привилегии CAP_SYS_TRACE своему пользователю?