精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

為什么 strace 在 Docker 中不起作用?

開發(fā) 前端
在編輯“容器如何工作”愛好者雜志的能力頁面時,我想試著解釋一下為什么 strace 在 Docker 容器中無法工作。這里的問題是 —— 如果我在筆記本上的 Docker 容器中運行 strace,就會出現(xiàn)這種情況......

在編輯“容器如何工作”愛好者雜志的能力頁面時,我想試著解釋一下為什么 strace 在 Docker 容器中無法工作。

這里的問題是 —— 如果我在筆記本上的 Docker 容器中運行 strace,就會出現(xiàn)這種情況:

  1. $ docker run  -it ubuntu:18.04 /bin/bash 
  2. $ # ... install strace ... 
  3. [email protected]:/# strace ls 
  4. strace: ptrace(PTRACE_TRACEME, ...): Operation not permitted 

strace 通過 ptrace 系統(tǒng)調(diào)用起作用,所以如果不允許使用 ptrace,它肯定是不能工作的! 這個問題很容易解決 —— 在我的機器上,是這樣解決的:

  1. docker run --cap-add=SYS_PTRACE -it ubuntu:18.04 /bin/bash 

但我對如何修復(fù)它不感興趣,我想知道為什么會出現(xiàn)這種情況。為什么 strace 不能工作,為什么--cap-add=SYS_PTRACE 可以解決這個問題?

假設(shè) 1:容器進程缺少 CAP_SYS_PTRACE 能力。

我一直以為原因是 Docker 容器進程默認不具備 CAP_SYS_PTRACE 能力。這和它可以被 --cap-add=SYS_PTRACE 修復(fù)是一回事,是吧?

但這實際上是不合理的,原因有兩個。

原因 1:在實驗中,作為一個普通用戶,我可以對我的用戶運行的任何進程進行 strace。但如果我檢查我的當(dāng)前進程是否有 CAP_SYS_PTRACE 能力,則沒有:

  1. $ getpcaps $$ 
  2. Capabilities for `11589': = 

原因 2:capabilities 的手冊頁對 CAP_SYS_PTRACE 的介紹是:

  1. CAP_SYS_PTRACE 
  2.        * Trace arbitrary processes using ptrace(2); 

所以,CAP_SYS_PTRACE 的作用是讓你像 root 一樣,可以對任何用戶擁有的任意進程進行 ptrace。你不需要用它來對一個只是由你的用戶擁有的普通進程進行 ptrace 。

我用第三種方法測試了一下(LCTT 譯注:此處可能原文有誤) —— 我用 docker run --cap-add=SYS_PTRACE -it ubuntu:18.04 /bin/bash 運行了一個 Docker 容器,去掉了 CAP_SYS_PTRACE 能力,但我仍然可以跟蹤進程,雖然我已經(jīng)沒有這個能力了。什么?為什么?!

假設(shè) 2:關(guān)于用戶命名空間的事情?

我的下一個(沒有那么充分的依據(jù)的)假設(shè)是“嗯,也許這個過程是在不同的用戶命名空間里,而 strace 不能工作,因為某種原因而行不通?”這個問題其實并不相關(guān),但這是我觀察時想到的。

容器進程是否在不同的用戶命名空間中?嗯,在容器中:

  1. root@e27f594da870:/# ls /proc/$$/ns/user -l 
  2. ... /proc/1/ns/user -> 'user:[4026531837]' 

在宿主機:

  1. bork@kiwi:~$ ls /proc/$$/ns/user -l 
  2. ... /proc/12177/ns/user -> 'user:[4026531837]' 

因為用戶命名空間 ID(4026531837)是相同的,所以容器中的 root 用戶和主機上的 root 用戶是完全相同的用戶。所以,絕對沒有理由不能夠?qū)λ鼊?chuàng)建的進程進行 strace!

這個假設(shè)并沒有什么意義,但我(之前)沒有意識到 Docker 容器中的 root 用戶和主機上的 root 用戶同一個,所以我覺得這很有意思。

假設(shè) 3:ptrace 系統(tǒng)的調(diào)用被 seccomp-bpf 規(guī)則阻止了

我也知道 Docker 使用 seccomp-bpf 來阻止容器進程運行許多系統(tǒng)調(diào)用。而 ptrace 在被 Docker 默認的 seccomp 配置文件阻止的系統(tǒng)調(diào)用列表中!(實際上,允許的系統(tǒng)調(diào)用列表是一個白名單,所以只是ptrace 不在默認的白名單中。但得出的結(jié)果是一樣的。)

這很容易解釋為什么 strace 在 Docker 容器中不能工作 —— 如果 ptrace 系統(tǒng)調(diào)用完全被屏蔽了,那么你當(dāng)然不能調(diào)用它,strace 就會失敗。

讓我們來驗證一下這個假設(shè) —— 如果我們禁用了所有的 seccomp 規(guī)則,strace 能在 Docker 容器中工作嗎?

  1. $ docker run --security-opt seccomp=unconfined -it ubuntu:18.04  /bin/bash 
  2. $ strace ls 
  3. execve("/bin/ls", ["ls"], 0x7ffc69a65580 /* 8 vars */) = 0 
  4. ... it works fine ... 

是的,很好用!很好。謎底解開了,除了…..

為什么 --cap-add=SYS_PTRACE 能解決問題?

我們還沒有解釋的是:為什么 --cap-add=SYS_PTRACE 可以解決這個問題?

docker run 的手冊頁是這樣解釋 --cap-add 參數(shù)的。

  1. --cap-add=[] 
  2.    Add Linux capabilities 

這跟 seccomp 規(guī)則沒有任何關(guān)系! 怎么回事?

我們來看看 Docker 源碼

當(dāng)文檔沒有幫助的時候,唯一要做的就是去看源碼。

Go 語言的好處是,因為依賴關(guān)系通常是在一個 Go 倉庫里,你可以通過 grep 來找出做某件事的代碼在哪里。所以我克隆了 github.com/moby/moby,然后對一些東西進行 grep,比如 rg CAP_SYS_PTRACE。

我認為是這樣的。在 containerd 的 seccomp 實現(xiàn)中,在 contrib/seccomp/seccomp/seccomp_default.go 中,有一堆代碼來確保如果一個進程有一個能力,那么它也會(通過 seccomp 規(guī)則)獲得訪問權(quán)限,以使用與該能力相關(guān)的系統(tǒng)調(diào)用。

  1. case "CAP_SYS_PTRACE"
  2.        s.Syscalls = append(s.Syscalls, specs.LinuxSyscall{ 
  3.            Names: []string{ 
  4.                "kcmp"
  5.                "process_vm_readv"
  6.                "process_vm_writev"
  7.                "ptrace"
  8.            }, 
  9.            Action: specs.ActAllow, 
  10.            Args:   []specs.LinuxSeccompArg{}, 
  11.        }) 

在 moby 中的 profile/seccomp/seccomp.go 和 默認的 seccomp 配置文件中,也有一些其他的代碼似乎做了一些非常類似的事情,所以有可能就是這個代碼在做這個事情。

所以我想我們有答案了!

Docker 中的 --cap-add 做的事情比它說的要多

結(jié)果似乎是,--cap-add 并不像手冊頁里說的那樣,它更像是 --cap-add-and-also-whiteelist-some-extra-system-calls-if-required。這很有意義! 如果你具有一個像 --CAP_SYS_PTRACE 這樣的能力,可以讓你使用 process_vm_readv 系統(tǒng)調(diào)用,但是該系統(tǒng)調(diào)用被 seccomp 配置文件阻止了,那對你沒有什么幫助!

所以當(dāng)你給容器 CAP_SYS_PTRACE 能力時,允許使用 process_vm_readv 和 ptrace 系統(tǒng)調(diào)用似乎是一個合理的選擇。

就這樣!

這是個有趣的小事情,我認為這是一個很好的例子,說明了容器是由許多移動的部件組成的,它們以不完全顯而易見的方式一起工作。

責(zé)任編輯:未麗燕 來源: Linux.cn
相關(guān)推薦

2019-05-07 14:03:53

鼠標中鍵Windows 10Windows

2021-05-07 07:50:44

Numactl內(nèi)存代碼

2019-07-11 10:30:58

USBWindows 10 快速修復(fù)

2018-07-20 10:50:43

WindowsWindows 10Shift

2021-06-08 08:52:18

Makefile編譯c 文件

2021-04-06 11:46:18

比特幣加密貨幣資產(chǎn)

2025-05-26 08:35:00

2025-06-11 04:25:00

上下文窗口系統(tǒng)

2025-06-04 01:44:00

z-indexCSS堆疊

2019-03-13 10:45:21

憑據(jù)Windows 10遠程桌面

2024-06-04 16:42:45

2018-11-20 13:52:54

2022-12-01 08:09:05

SQLOracleSPM

2021-09-08 17:27:54

神經(jīng)網(wǎng)絡(luò)AI算法

2023-03-20 09:42:06

2025-09-15 01:50:00

2022-12-27 14:43:15

模型GPT

2016-12-06 10:30:39

JavaScriptWriteWriteln

2025-07-31 03:00:00

數(shù)據(jù)湖BLMLLM

2024-09-11 08:38:02

JavaScriptC#語言編程
點贊
收藏

51CTO技術(shù)棧公眾號

成人网在线播放| 欧美激情第8页| 欧美日韩精品系列| 日韩亚洲欧美一区二区| 五十路在线视频| 乱一区二区av| 2018日韩中文字幕| 娇小11一12╳yⅹ╳毛片| 亚洲综合网狠久久| 在线观看成人免费视频| 毛片av在线播放| 国产一级片在线| 国产精品自拍网站| 国产精品对白刺激| 国产在线观看成人| 久久国产电影| 精品视频久久久| 日本少妇一级片| 亚洲精品555| 五月婷婷综合在线| 99久re热视频精品98| 国模吧精品人体gogo| 成人午夜激情片| 91久久精品国产| 久久久久久久亚洲| 亚洲美女91| 久久99热精品| 老司机深夜福利网站| 亚洲欧美日本伦理| 亚洲国产精品视频在线观看| 91精品国产三级| 青娱乐极品盛宴一区二区| 欧美午夜无遮挡| 男女日批视频在线观看| 激情成人四房播| 日本一区二区久久| 欧洲在线视频一区| 日本亚洲一区| 99久久久精品| 国语精品中文字幕| 亚洲国产视频一区二区三区| 国产在线精品视频| 成人激情视频免费在线| 最近中文字幕在线观看| 日韩二区在线观看| 国产成人精品久久久| 99精品在线播放| 一区二区三区高清视频在线观看| 欧美激情视频网站| 久久精品一区二区三| 欧美日本久久| 久久久久久久久爱| 黄色小视频在线免费看| 激情综合网址| 91高清视频在线免费观看| 不卡的免费av| 国产欧美日韩一区二区三区在线| 午夜精品在线视频| 久热这里只有精品6| 美女精品在线观看| 国产成人精品电影| 性色av一区二区三区四区| 免费在线观看一区二区三区| 国产三级精品网站| 国产精品嫩草影院精东| 国产高清成人在线| 国产尤物99| 欧美偷拍视频| 中文字幕av免费专区久久| 亚洲视频小说| 午夜成年人在线免费视频| 洋洋成人永久网站入口| 妞干网在线视频观看| 涩涩视频在线播放| 欧美色爱综合网| 永久免费黄色片| 久久男人av| 国产香蕉精品视频一区二区三区| av永久免费观看| 图片区亚洲欧美小说区| 欧美激情精品久久久久久变态 | av男人天堂av| 丁香五精品蜜臀久久久久99网站 | 国产成人综合精品在线| 中文在线最新版天堂| 国产一区欧美一区| 韩国成人动漫在线观看| 成人免费高清在线播放| 亚洲免费在线播放| www国产精品内射老熟女| 日本综合视频| 精品国产免费视频| 最近中文字幕在线mv视频在线| 99成人超碰| 18性欧美xxxⅹ性满足| 亚洲综合精品视频| 成人av动漫在线| 一区不卡字幕| 在线视频cao| 91麻豆精品国产91久久久久久| 日本黄色录像片| 欧美电影一区| 青草成人免费视频| 国产视频第一页| 久久精品亚洲一区二区三区浴池| 免费观看中文字幕| 久久毛片亚洲| 精品国产区一区| www.xx日本| 男人的天堂亚洲| 91探花福利精品国产自产在线 | 久久久国产视频| 伊人手机在线视频| 国产精品1区2区3区| 日韩在线第一区| 两个人看的在线视频www| 在线电影欧美成精品| av男人的天堂av| 亚洲国产91| 91九色国产在线| 成年人免费在线视频| 欧美日韩另类在线| 熟妇高潮一区二区| 综合久久十次| 成人国产在线视频| fc2在线中文字幕| 色综合久久88色综合天天6| 国产精品一区二区在线免费观看| 欧美3p视频| 国产精品久久久亚洲| 你懂的免费在线观看视频网站| 亚洲一级不卡视频| 妖精视频在线观看| 在线国产一区二区| 91麻豆桃色免费看| 最新国产在线观看| 欧美曰成人黄网| 波多野吉衣中文字幕| 一区二区三区高清视频在线观看| 国产精品乱子乱xxxx| 在线午夜影院| 精品久久久久久无| 久久久久久久久久久97| 国产aⅴ综合色| 91嫩草国产丨精品入口麻豆| av成人在线网站| 久久久精品欧美| 91精品视频免费在线观看| 国产精品家庭影院| 91av视频免费观看| 91精品国产自产在线观看永久∴| 成人美女av在线直播| 麻豆系列在线观看| 日韩一区二区中文字幕| 日本一级二级视频| 国产精品77777竹菊影视小说| 九九久久九九久久| 精品久久ai电影| 欧美一区二区三区免费观看| 日韩a级作爱片一二三区免费观看| 五月天婷婷综合| 国产av自拍一区| 麻豆精品久久精品色综合| 国产精品jizz在线观看老狼| 亚洲精品一二三**| 97国产suv精品一区二区62| 天堂a√中文在线| 欧美日韩在线直播| 18岁成人毛片| 99视频精品全部免费在线| 人妻熟女一二三区夜夜爱| 精品一区电影| 91在线|亚洲| 丁香花电影在线观看完整版| 亚洲精品美女网站| 中文字幕码精品视频网站| 日韩美女视频一区| 日韩精品视频一区二区| 狂野欧美一区| 成年人黄色在线观看| 91九色鹿精品国产综合久久香蕉| 97视频在线观看成人| 国产高清一区在线观看| 欧美一区二区三区啪啪| 中日韩黄色大片| 国产精品高潮呻吟| 一级黄色电影片| 日本视频一区二区| 国产高清不卡无码视频| 亚洲综合福利| 99re资源| 国产私拍福利精品视频二区| 欧美黑人xxxx| 成年人在线视频| 亚洲成人免费网站| 7777久久亚洲中文字幕| 亚洲成人av电影在线| 久久99久久99精品免费看小说| 懂色一区二区三区免费观看| 亚洲免费看av| 国产日韩一区二区三区在线| 福利网在线观看| 视频一区中文| 国产精品xxxx| 亚洲电影二区| 青草热久免费精品视频| 欧美性受ⅹ╳╳╳黑人a性爽| 亚洲午夜激情免费视频| 人妻偷人精品一区二区三区| 在线播放日韩导航| 波多野结衣爱爱| 性久久久久久久久久久久| 天天看天天摸天天操| 国产午夜亚洲精品理论片色戒| 欧美性生交xxxxx| 国产一区在线观看麻豆| 在线免费av播放| 久久久一二三| 国产一区二区网| 亚洲五月婷婷| 懂色av粉嫩av蜜臀av| 精品视频国产| 日本在线高清视频一区| 先锋影音国产精品| 国产精品久久久久久久小唯西川| 电影中文字幕一区二区| 国产精品香蕉在线观看| 欧美性xxx| 日本久久久a级免费| 欧美日韩国产观看视频| 久久久久久中文字幕| 日韩专区av| 欧美国产亚洲视频| 1769免费视频在线观看| 久久久国产91| 羞羞污视频在线观看| 久久亚洲精品成人| 精品欧美色视频网站在线观看| 日韩在线观看你懂的| aaa在线免费观看| 中文字幕欧美亚洲| av影片免费在线观看| 在线观看欧美视频| 国产在线观看黄| 在线观看精品自拍私拍| 91成人高清| www日韩中文字幕在线看| 日本www在线观看视频| 日韩小视频在线| 超碰在线caoporn| 欧美国产日本高清在线| 午夜小视频在线观看| 久久久在线视频| 伊人久久视频| 国产精品三级网站| 懂色av色香蕉一区二区蜜桃| 91日本在线视频| 91精品啪在线观看国产爱臀| 国产乱码精品一区二区三区日韩精品 | 国产精品久久久久无码av色戒| 久久精品视频一区二区三区| 蜜桃av乱码一区二区三区| 国产精品日产欧美久久久久| 人人澡人人澡人人看| 亚洲国产精品久久一线不卡| 国产成人无码一区二区三区在线| 欧美性xxxx极品hd满灌| 波多野结衣理论片| 欧美疯狂做受xxxx富婆| 亚洲第一页在线观看| 日韩精品丝袜在线| 91av资源在线| 久久人人爽人人| 日韩欧美精品电影| 91久久久精品| 美女一区2区| 亚洲精品二区| 欧美日韩天堂| 国产天堂在线播放| 国产乱码精品一区二区三区忘忧草| 97精品人人妻人人| 欧美激情一区二区在线| 青青草原在线免费观看视频| 欧美性xxxx极品hd满灌| av资源免费看| 亚洲欧洲一区二区三区久久| 成人免费网址| 日韩av电影手机在线观看| 亚洲aⅴ网站| 久久久久久欧美精品色一二三四| 日本精品三区| 亚洲 欧美 日韩 国产综合 在线 | 国产欧美va欧美va香蕉在线| 亚洲一二av| 日韩一本精品| 亚洲国产国产亚洲一二三| 亚洲国产成人va在线观看麻豆| 国产99久久久国产精品潘金| 黄色av免费播放| 午夜精品久久久久久久久久| 97精品人妻一区二区三区| 亚洲精品v欧美精品v日韩精品| 免费黄色在线看| 欧洲亚洲女同hd| 91精品国产乱码久久久竹菊| 亚洲日本一区二区三区在线不卡 | 一二三四社区欧美黄| 波多野结衣黄色| 日韩电影免费观看在线观看| 韩国中文字幕在线| 国产精品久久久久秋霞鲁丝 | 日韩电影在线观看中文字幕| 成人免费高清| 国产狼人综合免费视频| 天天久久夜夜| 日韩精品 欧美| 国产精品18久久久久久久网站| 久久精品在线观看视频| 色狠狠一区二区三区香蕉| 人妻无码一区二区三区久久99| 欧美尺度大的性做爰视频| 国产福利一区二区三区在线播放| 久久久久se| 日韩午夜一区| 丰满少妇xbxb毛片日本| 亚洲欧美国产高清| 91欧美日韩麻豆精品| 色婷婷综合成人| 九色成人搞黄网站| 日本午夜精品一区二区三区| 久久精品毛片| 一道本在线观看| 色综合久久综合网97色综合| 色视频免费在线观看| 97视频免费看| 日韩电影不卡一区| 中文字幕无码精品亚洲35| 成人国产精品免费观看动漫| 久久免费在线观看视频| 日韩欧美一二区| 国产美女情趣调教h一区二区| yellow视频在线观看一区二区| 亚洲国产一区二区在线观看 | 99精品久久只有精品| 在线看成人av| 日韩黄色av网站| 免费成人动漫| 日韩和欧美的一区二区| 日本欧美在线看| 91视频最新网址| 日韩一区二区三区高清免费看看| 老司机在线视频二区| 亚洲va欧美va在线观看| 欧美另类专区| 2一3sex性hd| 日韩欧美在线国产| 大乳在线免费观看| 成人网欧美在线视频| 欧美在线黄色| 大尺度做爰床戏呻吟舒畅| 精品毛片三在线观看| 国产一区二区三区福利| 国产精品一区二区久久国产| 99久久久久| 亚洲av午夜精品一区二区三区| 亚洲第一福利一区| 欧美黄色小说| 国产综合久久久久久| 欧美日韩亚洲一区二区三区在线| 老司机午夜免费福利| 日韩欧美一区二区三区| 香蕉视频在线播放| 亚洲自拍偷拍福利| 亚洲每日在线| 国产精品久久国产精麻豆96堂| 日韩欧美卡一卡二| 一个人www视频在线免费观看| 亚洲国产欧美一区二区三区不卡| 国产一区二区h| 成人在线免费看视频| 在线看日韩欧美| 亚洲一区二区三区免费| 37pao成人国产永久免费视频| 国产精品国产三级国产普通话99| 精品人妻一区二区三区麻豆91| 欧美孕妇与黑人孕交| 天天天综合网| a级在线观看视频| 欧美一区二区三区在线| 中文字幕在线看片| 好吊色这里只有精品| 99久久精品情趣| 国产一区二区波多野结衣| 91精品国产色综合久久不卡98口| 日韩激情在线| 精品夜夜澡人妻无码av| 日韩欧美电影在线| av成人在线看| 精品久久一二三| 亚洲精品视频一区二区|