濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > 解決docker使用GDB,無(wú)法進(jìn)入斷點(diǎn)的問(wèn)題

解決docker使用GDB,無(wú)法進(jìn)入斷點(diǎn)的問(wèn)題

熱門標(biāo)簽:中國(guó)地圖標(biāo)注上各個(gè)省 新鄉(xiāng)牧野400電話申請(qǐng) 撫州市城區(qū)地圖標(biāo)注 智能電銷機(jī)器人真的有用么 電銷智能機(jī)器人試用 百度地圖底圖標(biāo)注 高德地圖標(biāo)注足跡怎么打標(biāo) 企業(yè)辦理400電話收費(fèi)標(biāo)準(zhǔn) 激光標(biāo)記地圖標(biāo)注

問(wèn)題

docker里運(yùn)行g(shù)db,打了斷點(diǎn),卻無(wú)法進(jìn)入斷點(diǎn)

原因

docker為了保證主機(jī)安全,docker開了很多安全設(shè)置,其中包括ASLR(Address space layout randomization),即docker里的內(nèi)存地址和主機(jī)內(nèi)存地址是不一樣的。

ASLR會(huì)導(dǎo)致GDB這種依賴地址的程序無(wú)法正常運(yùn)作。

解決方法

使用docker的超級(jí)權(quán)限,加入--privileged(兩個(gè)橫線,markdown語(yǔ)法

如:

docker run --privileged ……

GDB即可正常運(yùn)作

超級(jí)權(quán)限會(huì)關(guān)閉很多安全設(shè)置,可以更充分的使用docker能力

例如,docker里再開docker都可以了,呵呵。

補(bǔ)充知識(shí):docker ptrace: Operation not permitted. 處理方法

docker中g(shù)db在進(jìn)行進(jìn)程debug時(shí),會(huì)報(bào)錯(cuò):

(gdb) attach 30721

Attaching to process 30721

ptrace: Operation not permitted.

原因就是因?yàn)閜trace被Docker默認(rèn)禁止的問(wèn)題??紤]到應(yīng)用分析的需要,可以有以下幾種方法解決:

1、關(guān)閉seccomp

docker run --security-opt seccomp=unconfined

2、采用超級(jí)權(quán)限模式

docker run --privileged

3、僅開放ptrace限制

docker run --cap-add sys_ptrace

當(dāng)然從安全角度考慮,如只是想使用gdb進(jìn)行debug的話,建議使用第三種。

安全計(jì)算模式(secure computing mode,seccomp)是 Linux 內(nèi)核功能,可以使用它來(lái)限制容器內(nèi)可用的操作。

Docker 的默認(rèn) seccomp 配置文件是一個(gè)白名單,它指定了允許的調(diào)用。

下表列出了由于不在白名單而被有效阻止的重要(但不是全部)系統(tǒng)調(diào)用。該表包含每個(gè)系統(tǒng)調(diào)用被阻止的原因。

Syscall Description
acct Accounting syscall which could let containers disable their own resource limits or process accounting. Also gated by CAP_SYS_PACCT.
add_key Prevent containers from using the kernel keyring, which is not namespaced.
adjtimex Similar to clock_settime and settimeofday, time/date is not namespaced. Also gated by CAP_SYS_TIME.
bpf Deny loading potentially persistent bpf programs into kernel, already gated by CAP_SYS_ADMIN.
clock_adjtime Time/date is not namespaced. Also gated by CAP_SYS_TIME.
clock_settime Time/date is not namespaced. Also gated by CAP_SYS_TIME.
clone Deny cloning new namespaces. Also gated by CAP_SYS_ADMIN for CLONE_* flags, except CLONE_USERNS.
create_module Deny manipulation and functions on kernel modules. Obsolete. Also gated by CAP_SYS_MODULE.
delete_module Deny manipulation and functions on kernel modules. Also gated by CAP_SYS_MODULE.
finit_module Deny manipulation and functions on kernel modules. Also gated by CAP_SYS_MODULE.
get_kernel_syms Deny retrieval of exported kernel and module symbols. Obsolete.
get_mempolicy Syscall that modifies kernel memory and NUMA settings. Already gated by CAP_SYS_NICE.
init_module Deny manipulation and functions on kernel modules. Also gated by CAP_SYS_MODULE.
ioperm Prevent containers from modifying kernel I/O privilege levels. Already gated by CAP_SYS_RAWIO.
iopl Prevent containers from modifying kernel I/O privilege levels. Already gated by CAP_SYS_RAWIO.
kcmp Restrict process inspection capabilities, already blocked by dropping CAP_PTRACE.
kexec_file_load Sister syscall of kexec_load that does the same thing, slightly different arguments. Also gated by CAP_SYS_BOOT.
kexec_load Deny loading a new kernel for later execution. Also gated by CAP_SYS_BOOT.
keyctl Prevent containers from using the kernel keyring, which is not namespaced.
lookup_dcookie Tracing/profiling syscall, which could leak a lot of information on the host. Also gated by CAP_SYS_ADMIN.
mbind Syscall that modifies kernel memory and NUMA settings. Already gated by CAP_SYS_NICE.
mount Deny mounting, already gated by CAP_SYS_ADMIN.
move_pages Syscall that modifies kernel memory and NUMA settings.
name_to_handle_at Sister syscall to open_by_handle_at. Already gated by CAP_SYS_NICE.
nfsservctl Deny interaction with the kernel nfs daemon. Obsolete since Linux 3.1.
open_by_handle_at Cause of an old container breakout. Also gated by CAP_DAC_READ_SEARCH.
perf_event_open Tracing/profiling syscall, which could leak a lot of information on the host.
personality Prevent container from enabling BSD emulation. Not inherently dangerous, but poorly tested, potential for a lot of kernel vulns.
pivot_root Deny pivot_root, should be privileged operation.
process_vm_readv Restrict process inspection capabilities, already blocked by dropping CAP_PTRACE.
process_vm_writev Restrict process inspection capabilities, already blocked by dropping CAP_PTRACE.
ptrace Tracing/profiling syscall, which could leak a lot of information on the host. Already blocked by dropping CAP_PTRACE.
query_module Deny manipulation and functions on kernel modules. Obsolete.
quotactl Quota syscall which could let containers disable their own resource limits or process accounting. Also gated by CAP_SYS_ADMIN.
reboot Don't let containers reboot the host. Also gated by CAP_SYS_BOOT.
request_key Prevent containers from using the kernel keyring, which is not namespaced.
set_mempolicy Syscall that modifies kernel memory and NUMA settings. Already gated by CAP_SYS_NICE.
setns Deny associating a thread with a namespace. Also gated by CAP_SYS_ADMIN.
settimeofday Time/date is not namespaced. Also gated by CAP_SYS_TIME.
socket, socketcall Used to send or receive packets and for other socket operations. All socket and socketcall calls are blocked except communication domains AF_UNIX, AF_INET, AF_INET6, AF_NETLINK, and AF_PACKET.
stime Time/date is not namespaced. Also gated by CAP_SYS_TIME.
swapon Deny start/stop swapping to file/device. Also gated by CAP_SYS_ADMIN.
swapoff Deny start/stop swapping to file/device. Also gated by CAP_SYS_ADMIN.
sysfs Obsolete syscall.
_sysctl Obsolete, replaced by /proc/sys.
umount Should be a privileged operation. Also gated by CAP_SYS_ADMIN.
umount2 Should be a privileged operation. Also gated by CAP_SYS_ADMIN.
unshare Deny cloning new namespaces for processes. Also gated by CAP_SYS_ADMIN, with the exception of unshare –user.
uselib Older syscall related to shared libraries, unused for a long time.
userfaultfd Userspace page fault handling, largely needed for process migration.
ustat Obsolete syscall.
vm86 In kernel x86 real mode virtual machine. Also gated by CAP_SYS_ADMIN.
vm86old In kernel x86 real mode virtual machine. Also gated by CAP_SYS_ADMIN.

以上這篇解決docker使用GDB,無(wú)法進(jìn)入斷點(diǎn)的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

標(biāo)簽:忻州 西安 邯鄲 海西 臨汾 辛集 南通 延安

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《解決docker使用GDB,無(wú)法進(jìn)入斷點(diǎn)的問(wèn)題》,本文關(guān)鍵詞  解決,docker,使用,GDB,無(wú)法,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《解決docker使用GDB,無(wú)法進(jìn)入斷點(diǎn)的問(wèn)題》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于解決docker使用GDB,無(wú)法進(jìn)入斷點(diǎn)的問(wèn)題的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    泰宁县| 林口县| 峨山| 资兴市| 舒城县| 伽师县| 连州市| 丰镇市| 太仆寺旗| 宜昌市| 韩城市| 安泽县| 延庆县| 原阳县| 磴口县| 禹城市| 礼泉县| 绥滨县| 耿马| 清原| 邵武市| 客服| 普兰店市| 阿瓦提县| 南投县| 郯城县| 虹口区| 来安县| 陇川县| 旅游| 潼南县| 上饶县| 都江堰市| 焦作市| 两当县| 绍兴市| 大同市| 顺昌县| 廊坊市| 柳林县| 岑巩县|