Как получить разрешение на отладку postgres? - PullRequest
2 голосов
/ 04 июня 2010

У меня есть система, которая использует методы 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 своему пользователю?

1 Ответ

2 голосов
/ 17 мая 2011

Кажется, что CAP_SYS_TRACE контролируется LIDS, который может быть установлен или не установлен на вашем компьютере.

Если вы интенсивно разрабатываете postgres, вы можете предпочесть запустить экземпляр postgres под своей учетной записью - это то, что я делаю с рядом серверов, на которых я работаю.

...