在 LTS 16 中为用户添加 CAP_SYS_PTRACE

Jam*_*den 5 permissions pam

我希望能够使用 gdb 附加到一个进程。进程有我的uid,但可执行文件是set-gid。所以,显然,我正在学习 PAM。我的理解是,任何附加到 set-gid 进程的进程都需要 CAP_SYS_PTRACE(或成为超级用户)。

以防万一有任何问题:

$ cat /proc/sys/kernel/yama/ptrace_scope
0
Run Code Online (Sandbox Code Playgroud)

按照pam_cap (8) 中的建议,我寻找/etc/security/capabilities.conf. 在不存在的 LTS 16 上,但目录存在,所以我创建了文件:

CAP_SYS_PTRACE jklowden
Run Code Online (Sandbox Code Playgroud)

我还将其附加到/etc/pam.d/common-auth

# Cf. advice in pam_cap(8)
auth      optional        pam_cap.so
Run Code Online (Sandbox Code Playgroud)

然而,新登录不能附加到 set-gid 进程。

  1. 如何显示流程的能力?
  2. 我必须重新启动pam还是什么?如何?
  3. 在此之前是否还有另一个文件需要按摩?
  4. 哪里有更好的地方来了解这些东西?

咆哮sudo -g $gid -p $pid没有帮助。正如精美的手册所说出于显而易见的原因非特权进程无法跟踪无法向其发送信号的进程或运行 set-user-ID/set-group-ID 程序的进程 为什么我不能从同一组中的进程跟踪我拥有的进程实际上并不明显,仅仅因为该文件被标记为 set-group-ID。该策略鼓励以超级用户身份进行调试,这无疑不太安全。【结束吐槽】

非常感谢。