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

理解 Docker 容器中 UID 和 GID 的工作原理

云計算 云原生
如果容器內部的進程正在執行的已知 uid,那么簡單地限制對主機系統的訪問,使容器中的 uid 僅具有有限訪問權限就可以了。

理解用戶名、組名、用戶ID(UID)和組ID(GID)在容器內運行的進程與主機系統之間的映射是構建安全系統的重要一環。如果沒有提供其他選項,容器中的進程將以root用戶身份執行(除非在Dockerfile中提供了不同的UID)。本文將解釋這一工作原理,如何正確授予權限,并提供示例加以說明。

逐步分析uid/gid安全性

首先,讓我們回顧一下uid和gid是如何實現的。Linux內核負責管理uid和gid空間,使用內核級系統調用來確定是否應該授予請求的特權。例如,當一個進程嘗試寫入文件時,內核會檢查創建該進程的uid和gid,以確定它是否具有足夠的特權來修改文件。這里不使用用戶名,而是使用uid。

在服務器上運行 Docker 容器時,仍然只有一個內核。容器化帶來的巨大價值之一是所有這些獨立的進程可以繼續共享一個內核。這意味著即使在運行 Docker 容器的服務器上,整個 uid 和 gid 的世界仍由一個單一內核控制。

因此,在不同的容器中不能使用相同的 uid 分配給不同的用戶。這是因為在常見的 Linux 工具中顯示的用戶名(和組名)并不是內核的一部分,而是由外部工具(如 /etc/passwd、LDAP、Kerberos 等)管理。因此,你可能會看到不同的用戶名,但是即使在不同的容器中,對于相同的 uid/gid,你也不能擁有不同的權限。這一點一開始可能會讓人感到相當困惑,所以讓我們通過幾個例子來說明一下:

簡單的Docker運行

我將首先以普通用戶(marc)的身份登錄到一個屬于docker組的服務器上。這樣我就可以在不使用sudo命令的情況下啟動docker容器。然后,從容器外部,讓我們來看看這個過程是如何呈現的。

marc@server:~$ docker run -d ubuntu:latest sleep infinity
92c57a8a4eda60678f049b906f99053cbe3bf68a7261f118e411dee173484d10
marc@server:~$ ps aux | grep sleep
root 15638 0.1 0.0 4380 808 ? Ss 19:49 0:00 sleep infinity

盡管我從未輸入過sudo,也不是root用戶,但我執行的sleep命令以root用戶身份啟動并具有root權限。我如何知道它具有root權限?容器內的root是否等同于容器外的root?是的,因為正如我提到的,有一個單一的內核和一個共享的uid和gid池。由于容器外顯示的用戶名是“root”,我可以確定容器內的進程是以具有uid = 0的用戶啟動的。

帶有定義用戶的Dockerfile

當我在 Dockerfile 中創建一個不同的用戶并以該用戶身份啟動命令時會發生什么?為了簡化這個例子,我這里沒有指定 gid,但相同的概念也適用于組 id。

首先,我正在以用戶名為“marc”的用戶身份運行這些命令,該用戶的用戶ID為1001。

marc@server:~$ echo $UID
1001

Dockerfile文件:

FROM ubuntu:latest
RUN useradd -r -u 1001 -g appuser appuser
USER appuser
ENTRYPOINT [“sleep”, “infinity”]

構建:

marc@server:~$ docker build -t test .
Sending build context to Docker daemon 14.34 kB
Step 1/4 : FROM ubuntu:latest
 — -> f49eec89601e
Step 2/4 : RUN useradd -r -u 1001 appuser
 — -> Running in 8c4c0a442ace
 — -> 6a81547f335e
Removing intermediate container 8c4c0a442ace
Step 3/4 : USER appuser
 — -> Running in acd9e30b4aba
 — -> fc1b765e227f
Removing intermediate container acd9e30b4aba
Step 4/4 : ENTRYPOINT sleep infinity
 — -> Running in a5710a32a8ed
 — -> fd1e2ab0fb75
Removing intermediate container a5710a32a8ed
Successfully built fd1e2ab0fb75
marc@server:~$ docker run -d test
8ad0cd43592e6c4314775392fb3149015adc25deb22e5e5ea07203ff53038073
marc@server:~$ ps aux | grep sleep
marc 16507 0.3 0.0 4380 668 ? Ss 20:02 0:00 sleep infinity
marc@server:~$ docker exec -it 8ad0 /bin/bash
appuser@8ad0cd43592e:/$ ps aux | grep sleep
appuser 1 0.0 0.0 4380 668 ? Ss 20:02 0:00 sleep infinity

這里到底發生了什么,這意味著什么?我構建了一個 Docker 鏡像,其中有一個名為“appuser”的用戶,該用戶的 uid 為 1001。在我的測試服務器上,我使用的帳戶名為“marc”,uid 也是 1001。當我啟動容器時,sleep 命令以 appuser 的身份執行,因為 Dockerfile 包含了“USER appuser”這一行。但實際上這并不是以 appuser 的身份運行,而是以 Docker 鏡像中被識別為 appuser 的用戶的 uid 運行。

當我檢查容器外運行的進程時,我發現它映射到用戶“marc”,但在容器內部,它映射到用戶“appuser”。這兩個用戶名只是顯示它們的執行上下文所知道的映射到1001的用戶名。

這并不是非常重要。但重要的是要知道,在容器內部,用戶“appuser”獲得了來自容器外部用戶“marc”的權限和特權。在Linux主機上授予用戶marc或uid 1001的權限也將授予容器內的appuser這些權限。

如何控制容器的訪問權限

另一種選擇是在運行 Docker 容器時指定用戶名或用戶ID,以及組名或組ID。

再次使用上面的初始示例。

marc@server:~$ docker run -d --user 1001 ubuntu:latest sleep infinity
84f436065c90ac5f59a2256e8a27237cf8d7849d18e39e5370c36f9554254e2b
marc@server$ ps aux | grep sleep
marc     17058 0.1 0.0 4380 664 ? Ss 21:23 0:00 sleep infinity

我在這里做了什么?我創建了容器以1001用戶身份啟動。因此,當我執行諸如ps或top(或大多數監控工具)之類的命令時,進程映射到“marc”用戶。

有趣的是,當我進入該容器時,你會發現1001用戶在/etc/passwd文件中沒有條目,并在容器的bash提示符中顯示為“I have no name!”。

marc@server:~$ docker exec -it 84f43 /bin/bash
I have no name!@84f436065c90:/$

重要的是要注意,在創建容器時指定用戶標志也會覆蓋 Dockerfile 中的值。還記得第二個例子嗎?那時我使用了一個 Dockerfile,其中的 uid 映射到本地主機上的不同用戶名。當我們在命令行上使用用戶標志來啟動一個執行“sleep infinity”進程的容器時,會發生什么呢?

marc@server:$ docker run -d test
489a236261a0620e287e434ed1b15503c844648544694e538264e69d534d0d65
marc@server:~$ ps aux | grep sleep
marc     17689 0.2 0.0 4380 680 ? Ss 21:28 0:00 sleep infinity
marc@server:~$ docker run --user 0 -d test
ac27849fcbce066bad37190b5bf6a46cf526f56d889af61e7a02c3726438fa7a
marc@server:~$ ps aux | grep sleep
marc     17689 0.0 0.0 4380 680 ? Ss 21:28 0:00 sleep infinity
root     17783 0.3 0.0 4380 668 ? Ss 21:28 0:00 sleep infinity

在上面的最后一個示例中,您可以看到我最終得到了兩個運行睡眠進程的容器,一個是“marc”,另一個是“root”。這是因為第二個命令通過在命令行上傳遞--user標志來更改了用戶ID。

總結

現在我們已經探討了這一點,可以理解以有限權限運行容器的方式都利用了主機的用戶系統:

  • 如果容器內部的進程正在執行的已知 uid,那么簡單地限制對主機系統的訪問,使容器中的 uid 僅具有有限訪問權限就可以了。
  • 更好的解決方案是使用--user以已知 uid 啟動容器(也可以使用用戶名,但請記住這只是提供主機用戶名系統中的 uid 的一種更友好的方式),然后限制主機上您決定容器將以其運行的 uid 的訪問權限。
  • 由于容器到主機的 uid 和用戶名(以及 gid 和組名)的映射,指定容器化進程運行的用戶可以使該進程在容器內部和外部看起來像是由不同的用戶擁有。
責任編輯:武曉燕 來源: 云原生運維圈
相關推薦

2019-08-20 14:01:22

HTTPSSSL協議

2022-09-06 11:13:16

接口PipelineHandler

2024-06-27 08:26:10

LooperAndroid內存

2024-11-01 08:57:07

2022-07-29 10:01:50

Docker退出碼

2015-01-06 15:25:12

DockerDocker Volu數據容器

2009-07-06 16:16:33

Servlet容器工作

2023-09-19 22:47:39

Java內存

2021-07-16 07:57:34

ReduxDOM組件

2025-04-01 08:50:48

2019-07-16 14:44:52

DockerMySQL操作系統

2009-11-30 17:30:47

PHP ereg_re

2019-07-24 08:49:36

Docker容器鏡像

2011-07-01 11:16:14

Struts

2025-08-04 02:55:00

AIAgent架構

2015-08-26 15:11:41

Docker容器備份Docker容器遷移

2018-07-24 08:56:45

容器存儲閃存

2022-01-05 14:30:44

容器Linux網絡

2022-05-11 07:38:45

SpringWebFlux

2024-08-14 18:18:47

點贊
收藏

51CTO技術棧公眾號

丝袜亚洲另类丝袜在线| 一区二区三区自拍视频| 国产精品午夜在线| 91文字幕巨乱亚洲香蕉| 国产在线观看免费av| 丝袜久久网站| 在线不卡免费欧美| 热99这里只有精品| 丁香婷婷在线| 成人中文字幕在线| 国产精品久久久久久久app| 亚洲成人生活片| 国产日韩欧美一区二区三区| 777午夜精品免费视频| 成人在线免费在线观看| 国产cdts系列另类在线观看| 26uuu亚洲| 亚洲精品欧美日韩| 亚洲欧美一二三区| 国产精品观看| 日韩在线一区二区三区免费视频| 国产精品女人网站| 成年无码av片在线| fc2成人免费视频| jvid一区二区三区| 天天av天天翘天天综合网色鬼国产 | 久久99精品久久久| 97视频网站入口| 国产精品三区在线观看| av亚洲在线观看| 亚洲激情电影中文字幕| 黄色片子免费看| 成人在线观看免费播放| 欧美视频在线观看免费网址| 久久久久久久香蕉| 欧美96在线| 国产欧美精品在线观看| 蜜桃精品久久久久久久免费影院| 精品人妻少妇嫩草av无码专区| 日韩成人免费电影| 欧洲午夜精品久久久| xxxx 国产| 国产精品xvideos88| 欧美成年人视频网站| 激情高潮到大叫狂喷水| 欧美理论电影大全| 亚洲性无码av在线| 18禁裸乳无遮挡啪啪无码免费| 大型av综合网站| 精品国产一区二区三区久久影院| 国产女同无遮挡互慰高潮91| 色婷婷成人网| 欧美丰满少妇xxxxx高潮对白| 欧美婷婷精品激情| 精品裸体bbb| 欧美曰成人黄网| 男女污污的视频| 91精品影视| 欧美视频日韩视频| 自拍偷拍一区二区三区四区| 国产香蕉久久| 91精品综合久久久久久| 污视频在线观看免费网站| 亚洲精品69| 日韩一区二区在线观看| 日韩大尺度视频| 国产 日韩 欧美 综合 一区| 欧美精品一区二区在线观看| 亚洲一区二区在线免费| 欧美有码在线| 亚洲人成伊人成综合网久久久| www.狠狠爱| 91综合久久一区二区| 欧美www在线| 日韩三级视频在线| 久久欧美肥婆一二区| 国产精品国产自产拍高清av水多| 一级黄色短视频| 国产大片一区二区| 激情小说综合网| 大胆av不用播放器在线播放| 国产精品久久三| 欧美一级爱爱视频| 欧美gv在线| 欧美日韩中文字幕精品| 中文字幕乱码在线人视频| 国内精品偷拍| 有码中文亚洲精品| 激情小说中文字幕| 国产精品美女| 国产精品永久免费| 粉嫩av一区二区夜夜嗨| 久久综合九色综合欧美亚洲| 樱花www成人免费视频| 四季久久免费一区二区三区四区| 精品美女久久久久久免费| 一区二区三区国产免费| 国产精品一区二区三区av| 亚洲国产精品字幕| 中文字幕第69页| 亚洲美女色禁图| 国产日本欧美一区| 婷婷色在线观看| 日韩毛片精品高清免费| www一区二区www免费| 日韩电影精品| 精品一区二区三区四区在线| 国产麻豆视频在线观看| 久久在线精品| 成人免费91在线看| 国产三级视频在线播放线观看| 樱花影视一区二区| 亚洲天堂av线| 美女久久99| 久久久久久久影院| 国产精品羞羞答答在线| 久久久久国产精品麻豆ai换脸 | 欧美另类久久久品| 这里只有精品在线观看视频| 忘忧草精品久久久久久久高清| 91福利视频在线观看| 99国产精品99| 中文字幕的久久| 国内外成人免费激情视频| 欧美日韩国产一区二区在线观看| 国产一区二区三区免费视频| 欧美福利视频一区二区| 国产精品伊人色| 中文字幕黄色大片| 午夜日韩成人影院| 亚洲黄色av网站| 久久久久香蕉视频| 国产一区二区影院| 中文字幕欧美日韩一区二区| 91综合国产| 伊人久久精品视频| 无码人妻精品一区二区50| 99精品热视频| 激情深爱综合网| 激情av综合| 久久久噜噜噜久久久| 亚洲国产精品suv| 亚洲综合区在线| 91亚洲一线产区二线产区| 亚洲在线久久| 91福利视频导航| 菠萝菠萝蜜在线视频免费观看| 欧美日韩精品电影| 99热这里只有精品4| 麻豆成人久久精品二区三区红| 日产国产精品精品a∨| 日韩在线免费| 一区二区在线视频| 一级黄色a毛片| 中文字幕一区三区| 国产三级精品三级在线| 日韩精品1区| 国产伦精品免费视频| 欧美成人二区| 日韩一区二区视频| 国产一级做a爰片在线看免费| 成人午夜电影久久影院| 国产午夜大地久久| 伊人久久大香线蕉av不卡| 日韩免费不卡av| av男人的天堂在线| 91精品国产入口| 免费网站观看www在线观| 大尺度一区二区| 99蜜桃臀久久久欧美精品网站| 精品久久综合| 成人夜晚看av| 超碰在线资源| 亚洲欧美在线x视频| 中文字幕乱码一区二区| 日韩理论片网站| 亚洲欧美日韩色| 日韩精品1区2区3区| 亚洲欧洲日本国产| 日本超碰一区二区| 性视频1819p久久| bbbbbbbbbbb在线视频| 欧美一区二区三区四区五区| 国产成人精品a视频一区| 国产三级精品在线| 天美一区二区三区| 亚洲精品黄色| 亚洲国产一区二区精品视频 | 久草视频手机在线| 成人免费看的视频| 十八禁视频网站在线观看| 久久视频精品| 激情伦成人综合小说| 久久爱.com| 国模精品一区二区三区色天香| 二区三区在线| 精品sm在线观看| 在线免费观看高清视频| 亚洲午夜久久久久久久久久久| 免费看污片网站| 国产高清在线精品| 日本成人中文字幕在线| 欧美va亚洲va日韩∨a综合色| 久久99精品久久久久久久青青日本 | 欧美亚洲综合一区| 国产一级特黄毛片| 国产精品国产三级国产普通话99| 日韩精品人妻中文字幕有码| 久久99日本精品| 波多野结衣家庭教师在线播放| 久久高清精品| 欧美日韩综合网| 精品嫩草影院| 97夜夜澡人人双人人人喊| 澳门av一区二区三区| 高清欧美性猛交xxxx| 欧美黄色激情| 中文字幕久久亚洲| 国产又爽又黄网站亚洲视频123| 91麻豆精品国产91久久久| 免费在线观看av的网站| 午夜电影一区二区三区| 四虎永久免费在线| 中文字幕第一区综合| 精品成人av一区二区三区| 成人三级伦理片| wwwxxxx在线观看| 精品一区二区在线视频| 天天爽天天爽夜夜爽| 性欧美xxxx大乳国产app| 日韩极品视频在线观看 | 欧美久久久久久久久久久久久| 99久久亚洲精品| 亚洲精品日韩成人| 精品一区二区三区在线 | 99久久免费看精品国产一区| 国产99久久久久久免费看农村| 黄色片免费网址| 狠狠色丁香九九婷婷综合五月| 国产超碰在线播放| 玖玖在线精品| 久久精品国产精品亚洲色婷婷| 亚洲精品影视| 人妻熟妇乱又伦精品视频| 日韩午夜高潮| 秋霞无码一区二区| 99精品国产一区二区青青牛奶| www.av片| 国产欧美亚洲一区| 国产性xxxx18免费观看视频| 国产精品综合| 男女曰b免费视频| 久久伊人亚洲| 日本肉体xxxx裸体xxx免费| 日本伊人精品一区二区三区观看方式| 蜜臀久久99精品久久久酒店新书| 美女91精品| 国产精品视频分类| 韩国三级电影一区二区| 国产人妻精品久久久久野外| 国产成人免费在线视频| 亚洲av成人片无码| 26uuu欧美| 一区二区三区在线观看免费视频| 国产欧美日韩精品在线| 欧美色视频一区二区三区在线观看| 一色桃子久久精品亚洲| 精品国产欧美日韩不卡在线观看| 亚洲综合激情另类小说区| 国产精品1234区| 色拍拍在线精品视频8848| 中文亚洲av片在线观看| 制服丝袜av成人在线看| 欧美一区二区黄片| 亚洲性猛交xxxxwww| 看黄网站在线| 午夜精品久久久久久久久久久久| 国产精品一区二区av影院萌芽| 国产精品亚洲片夜色在线| 精品国产亚洲日本| 国内一区在线| 日韩欧美在线中字| 日本黄色片一级片| 亚洲精品免费观看| 最近中文字幕一区二区| 国产精品一区专区| 国产特黄级aaaaa片免| 中文字幕一区二区三区四区 | 精品视频123区在线观看| 国产情侣在线播放| 日韩电影视频免费| 欧美日韩xx| 97热在线精品视频在线观看| 福利视频一区| 国产精品视频免费一区二区三区| 国产影视精品一区二区三区| 91免费版看片| 日韩精品电影在线| 国产xxxx视频| 成人免费小视频| www五月天com| 精品久久久久久亚洲综合网| 福利片在线观看| 国内精品久久久久影院优| 欧美黑粗硬大| 欧美日韩一区二区三区在线视频| 亚洲欧美伊人| 高清av免费看| 久久久精品黄色| 日韩手机在线观看| 欧美一级夜夜爽| 91在线视频免费看| 51色欧美片视频在线观看| 国产精品xnxxcom| 日韩av一区二区三区在线观看 | 韩国欧美亚洲国产| 91精品亚洲一区在线观看| 茄子视频成人在线观看 | 亚洲美女精品一区| 黄色污污视频软件| 日韩电视剧在线观看免费网站| 菠萝菠萝蜜在线视频免费观看| 国产精品久久久久久久久免费看| 红杏一区二区三区| 4444亚洲人成无码网在线观看| 蜜臀av性久久久久蜜臀av麻豆 | 亚洲三级电影全部在线观看高清| 狠狠躁夜夜躁人人爽天天高潮| 日韩一区二区在线观看视频| 九色porny丨首页在线| 国产精品丝袜久久久久久高清| 亚洲人成网77777色在线播放| 久久99久久99精品| 国产成人a级片| 欧美日韩成人免费观看| 91麻豆精品国产91久久久 | 依依成人精品视频| 99久久免费国产精精品| 久久精品成人欧美大片古装| 久久精品国产福利| 亚洲高清资源综合久久精品| 日韩国产高清在线| 欧洲美熟女乱又伦| 欧美在线观看视频一区二区 | 樱桃视频在线观看一区| 91tv国产成人福利| 久久久999精品免费| 24小时成人在线视频| 中文字幕在线中文字幕日亚韩一区| 麻豆久久一区二区| 波多野结衣久久久久| 555www色欧美视频| 97caopron在线视频| 91观看网站| 在线日本成人| 久久久久久久无码| 色素色在线综合| av在线免费一区| 成人在线视频福利| 欧美aⅴ99久久黑人专区| 中文字幕制服丝袜| 午夜精品一区二区三区三上悠亚| 污视频软件在线观看| 欧日韩在线观看| 三区四区不卡| 最新国产精品自拍| 欧美日韩国内自拍| 9i精品一二三区| 91亚洲午夜在线| 一区二区三区成人精品| 亚洲色成人网站www永久四虎 | 亚洲一区二区三区影院| 天天色综合久久| 国产精品免费电影| 一区二区电影在线观看| 催眠调教后宫乱淫校园| 一本久久a久久精品亚洲| 无遮挡动作视频在线观看免费入口 | 国产专区在线视频| 91在线丨porny丨国产| 高潮无码精品色欲av午夜福利| 久热精品视频在线免费观看| 极品国产人妖chinesets亚洲人妖 激情亚洲另类图片区小说区 | 强伦人妻一区二区三区| 欧美日韩1234| 国产盗摄在线视频网站| 欧美日韩综合网| 国产99精品视频| 中文字幕免费高清网站| 欧美国产乱视频| 黄色不卡一区| 日本中文字幕精品| 91福利国产精品| 成人免费网址| 日韩国产在线一区| 丰满少妇久久久久久久| 中文字幕精品一区二区精| 欧美激情精品久久久久久黑人| 精品国内自产拍在线观看视频| 秋霞午夜鲁丝一区二区|