Gdb追加権限の問題(ptrace_scopeは読み取り専用です)

Gdb追加権限の問題(ptrace_scopeは読み取り専用です)

gdbを使用してプロセスに接続するとき。見せる

プロセスに接続できません。ユーザーのuidがターゲットプロセスのuidと一致する場合は、/proc/sys/kernel/yama/ptrace_scope設定を確認するか、rootとして再試行してください。詳細については、/etc/sysctl.d/10-ptrace.confを参照してください。
ptrace: 操作は許可されません。

ルートとしてecho 0 >/proc/sys/kernel/yama/ptrace_scope;を使用すると、次のように表示されます。

bash: /proc/sys/kernel/yama/ptrace_scope: 読み取り専用ファイルシステム

この問題をどのように解決できますか?内容/etc/sysctl.d/10-ptrace.confkernel.yama.ptrace_scope = 0

答え1

これで、dockerでこのオプションを使用できるようになります--privilegedhttps://docs.docker.com/engine/reference/commandline/exec/

docker exec --privileged -ti <container> bash

特権モードでは、ptrace_scopeを変更しなくてもgdbを実行できます。

答え2

より細かいアプローチを使用するにはcap_add。私に役立つフラグはですSYS_PTRACE。これはCLIファイルとdocker-composeファイルの両方で機能します。スワームの場合、Docker 20.10.0以降が必要です。

関連情報