Gdb 추가 권한 문제(ptrace_scope는 읽기 전용임)

Gdb 추가 권한 문제(ptrace_scope는 읽기 전용임)

gdb를 사용하여 프로세스에 연결할 때. 보여주다

프로세스에 연결할 수 없습니다. 사용자의 uid가 대상 프로세스의 uid와 일치하는 경우 /proc/sys/kernel/yama/ptrace_scope 설정을 확인하거나 루트로 다시 시도하십시오. 자세한 내용은 /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에서 이 옵션을 사용할 수 있습니다 --privileged.https://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 이상이 필요합니다.

관련 정보