成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > 深入理解docker容器中的uid和gid

深入理解docker容器中的uid和gid

熱門標(biāo)簽:臨汾電銷機器人費用 地圖標(biāo)注w是什么方向 400電話申請找哪家公司 新鄉(xiāng)人工智能電話機器人加盟 福州呼叫中心外呼系統(tǒng)哪家好 七大洲地圖標(biāo)注 河南省鄭州市地圖標(biāo)注 地圖標(biāo)注需要提交啥資料入駐 昆明外呼系統(tǒng)

默認(rèn)情況下,容器中的進(jìn)程以 root 用戶權(quán)限運行,并且這個 root 用戶和宿主機中的 root 是同一個用戶。聽起來是不是很可怕,因為這就意味著一旦容器中的進(jìn)程有了適當(dāng)?shù)臋C會,它就可以控制宿主機上的一切!本文我們將嘗試了解用戶名、組名、用戶 id(uid)和組 id(gid)如何在容器內(nèi)的進(jìn)程和主機系統(tǒng)之間映射,這對于系統(tǒng)的安全來說是非常重要的。說明:本文的演示環(huán)境為 ubuntu 16.04(下圖來自互聯(lián)網(wǎng))。

先來了解下 uid 和 gid

uid 和 gid 由 Linux 內(nèi)核負(fù)責(zé)管理,并通過內(nèi)核級別的系統(tǒng)調(diào)用來決定是否應(yīng)該為某個請求授予特權(quán)。比如當(dāng)進(jìn)程試圖寫入文件時,內(nèi)核會檢查創(chuàng)建進(jìn)程的 uid 和 gid,以確定它是否有足夠的權(quán)限修改文件。注意,內(nèi)核使用的是 uid 和 gid,而不是用戶名和組名。

簡單起見,本文中剩下的部分只拿 uid 進(jìn)行舉例,系統(tǒng)對待 gid 的方式和 uid 基本相同。

很多同學(xué)簡單地把 docker 容器理解為輕量的虛擬機,雖然這簡化了理解容器技術(shù)的難度但是也容易帶來很多的誤解。事實上,與虛擬機技術(shù)不同:同一主機上運行的所有容器共享同一個內(nèi)核(主機的內(nèi)核)。容器化帶來的巨大價值在于所有這些獨立的容器(其實是進(jìn)程)可以共享一個內(nèi)核。這意味著即使由成百上千的容器運行在 docker 宿主機上,但內(nèi)核控制的 uid 和 gid 則仍然只有一套。所以同一個 uid 在宿主機和容器中代表的是同一個用戶(即便在不同的地方顯示了不同的用戶名)。

注意,由于普通的用來顯示用戶名的 Linux 工具并不屬于內(nèi)核(比如 id 等命令),所以我們可能會看到同一個 uid 在不同的容器中顯示為不同的用戶名。但是對于相同的 uid 不能有不同的特權(quán),即使在不同的容器中也是如此。

如果你已經(jīng)了解了 Linux 的 user namespace 技術(shù),參考《Linux Namespace : User》,你需要注意的是到目前為止,docker 默認(rèn)并沒有啟用 user namesapce,這也是本文討論的情況。筆者會在接下來的文章中介紹如何配置 docker 啟用 user namespace。

容器中默認(rèn)使用 root 用戶

如果不做相關(guān)的設(shè)置,容器中的進(jìn)程默認(rèn)以 root 用戶權(quán)限啟動,下面的 demo 使用 ubuntu 鏡像運行 sleep 程序:

$ docker run -d --name sleepme ubuntu sleep infinity

注意上面的命令中并沒有使用 sudo。筆者在宿主機中的登錄用戶是 nick,uid 為 1000:

在宿主機中查看 sleep 進(jìn)程的信息:

$ ps aux | grep sleep

sleep 進(jìn)程的有效用戶名稱是 root,也就是說 sleep 進(jìn)程具有 root 權(quán)限。

然后進(jìn)入容器內(nèi)部看看,看到的情況和剛才一樣,sleep 進(jìn)程也具有 root 權(quán)限:

那么,容器內(nèi)的 root 用戶和宿主機上的 root 用戶是同一個嗎?

答案是:是的,它們對應(yīng)的是同一個 uid。原因我們在前面已經(jīng)解釋過了:整個系統(tǒng)共享同一個內(nèi)核,而內(nèi)核只管理一套 uid 和 gid。

其實我們可以通過數(shù)據(jù)卷來簡單的驗證上面的結(jié)論。在宿主機上創(chuàng)建一個只有 root 用戶可以讀寫的文件:

然后掛載到容器中:

$ docker run --rm -it -w=/testv -v $(pwd)/testv:/testv ubuntu

在容器中可以讀寫該文件:

我們可以通過 Dockerfile 中的 USER 命令或者是 docker run 命令的 --user 參數(shù)指定容器中進(jìn)程的用戶身份。下面我們分別來探究這兩種情況。

在 Dockerfile 中指定用戶身份

我們可以在 Dockerfile 中添加一個用戶 appuser,并使用 USER 命令指定以該用戶的身份運行程序,Dockerfile 的內(nèi)容如下:

FROM ubuntu
RUN useradd -r -u 1000 -g appuser
USER appuser
ENTRYPOINT ["sleep", "infinity"]

編譯成名稱為 test 的鏡像:

$ docker build -t test .

用 test 鏡像啟動一個容器:

$ docker run -d --name sleepme test

在宿主機中查看 sleep 進(jìn)程的信息:

這次顯示的有效用戶是 nick,這是因為在宿主機中,uid 為 1000 的用戶的名稱為 nick。再進(jìn)入到容器中看看:

$ docker exec -it sleepme bash

容器中的當(dāng)前用戶就是我們設(shè)置的 appuser,如果查看容器中的 /etc/passwd 文件,你會發(fā)現(xiàn) appuser 的 uid 就是 1000,這和宿主機中用戶 nick 的 uid 是一樣的。

讓我們再創(chuàng)建一個只有用戶 nick 可以讀寫的文件:

同樣以數(shù)據(jù)卷的方式把它掛載到容器中:

$ docker run -d --name sleepme -w=/testv -v $(pwd)/testv:/testv test

在容器中 testfile 的所有者居然變成了 appuser,當(dāng)然 appuser 也就有權(quán)限讀寫該文件。

這里到底發(fā)生了什么?而這些又這說明了什么?

首先,宿主機系統(tǒng)中存在一個 uid 為 1000 的用戶 nick。其次容器中的程序是以 appuser 的身份運行的,這是由我們通過 USER appuser 命令在 Dockerfile 程序中指定的。

事實上,系統(tǒng)內(nèi)核管理的 uid 1000 只有一個,在宿主機中它被認(rèn)為是用戶 nick,而在容器中,它則被認(rèn)為是用戶 appuser。
所以有一點我們需要清楚:在容器內(nèi)部,用戶 appuser 能夠獲取容器外部用戶 nick 的權(quán)利和特權(quán)。在宿主機上授予用戶 nick 或 uid 1000 的特權(quán)也將授予容器內(nèi)的 appuser。

從命令行參數(shù)中自定用戶身份

我們還可以通過 docker run 命令的 --user 參數(shù)指定容器中進(jìn)程的用戶身份。比如執(zhí)行下面的命令:

$ docker run -d --user 1000 --name sleepme ubuntu sleep infinity

因為我們在命令行上指令了參數(shù) --user 1000,所以這里 sleep 進(jìn)程的有效用戶顯示為 nick。進(jìn)入到容器內(nèi)部看一下:

$ docker exec -it sleepme bash

這是個什么情況?用戶名稱居然顯示為 "I have no name!"!去查看 /etc/passwd 文件,里面果然沒有 uid 為 1000 的用戶。即便沒有用戶名稱,也絲毫不影響該用戶身份的權(quán)限,它依然可以讀寫只有 nick 用戶才能讀寫的文件,并且用戶信息也由 uid 代替了用戶名:

需要注意的是,在創(chuàng)建容器時通過 docker run --user 指定的用戶身份會覆蓋掉 Dockerfile 中指定的值。
我們重新通過 test 鏡像來運行兩個容器:

$ docker run -d test

查看 sleep 進(jìn)程信息:

$ docker run --user 0 -d test

再次查看 sleep 進(jìn)程信息:

指定了 --urser 0 參數(shù)的進(jìn)程顯示有效用戶為 root,說明命令行參數(shù) --user 0 覆蓋掉了 Dockerfile 中 USER 命令的設(shè)置。

總結(jié)

從本文中的示例我們可以了解到,容器中運行的進(jìn)程同樣具有訪問主機資源的權(quán)限(docker 默認(rèn)并沒有對用戶進(jìn)行隔離),當(dāng)然一般情況下容器技術(shù)會把容器中進(jìn)程的可見資源封鎖在容器中。但是通過我們演示的對數(shù)據(jù)卷中文件的操作可以看出,一旦容器中的進(jìn)程有機會訪問到宿主機的資源,它的權(quán)限和宿主機上用戶的權(quán)限是一樣的。所以比較安全的做法是為容器中的進(jìn)程指定一個具有合適權(quán)限的用戶,而不要使用默認(rèn)的 root 用戶。當(dāng)然還有更好的方案,就是應(yīng)用 Linux 的 user namespace 技術(shù)隔離用戶,筆者會在接下來的文章中介紹如何配置 docker 開啟 user namespace 的支持。

參考:

Understanding how uid and gid work in Docker containers
Introduction to User Namespaces in Docker Engine
Isolate containers with a user namespace

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標(biāo)簽:臨沂 烏海 股票 岳陽 四川 鎮(zhèn)江 紅河

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《深入理解docker容器中的uid和gid》,本文關(guān)鍵詞  深入,理解,docker,容器,中的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《深入理解docker容器中的uid和gid》相關(guān)的同類信息!
  • 本頁收集關(guān)于深入理解docker容器中的uid和gid的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    国产成人avxxxxx在线看| av免费播放网址| 海角国产乱辈乱精品视频| 丝袜美腿玉足3d专区一区| 和岳每晚弄的高潮嗷嗷叫视频| 中日韩免费视频中文字幕| 麻豆av免费在线观看| 日本久久久久久| 91啪九色porn原创视频在线观看| 欧美巨大黑人极品精男| 在线观看免费p片视频网站地址| 羞羞的视频在线观看| 国产黄片一区二区三区| 亚洲五月六月丁香激情| 国产黄色小视频网站| 国产精品视频播放| 欧美日韩精品一区二区在线播放| 超碰超碰在线观看| 日本一极黄色片| 久草视频中文在线| а√天堂中文在线资源bt在线| 欧美激情国产高清| 欧美一区二区视频免费观看| 资源视频在线播放免费| 永久av免费在线观看| 日本少妇裸体做爰| 三上悠亚在线观看视频| av久久久久久| 欧美中文在线视频| 色棕色天天综合网| 亚洲影视在线观看| 天堂影视av| 精品一区二区三区高清免费不卡| 中文字幕在线影视资源| 国产三区在线观看| 免费人成精品欧美精品| 精品久久久久一区| 爱搞国产精品| 国产福利片一区二区| 97精品国产一区二区三区| 玖玖玖精品中文字幕| 菠萝菠萝蜜在线视频免费观看| 亚洲视频 中文字幕| 69国产精品视频免费观看| 不卡av免费观看| 欧美性videos高清精品| 国产经品一区二区| 羞羞免费视频网站| 久久中文字幕国产| 国产精品国产精品国产专区不卡| 波多野结衣一本一道| 日韩成人性视频| 无码无套少妇毛多18pxxxx| 精品入口麻豆传煤| xvideos成人免费中文版| 日本肉体xxxx裸体784大胆| 亚洲日本丝袜连裤袜办公室| 91麻豆精品国产91久久久久久| 国产在线精品一区二区中文| 日本不卡一区二区三区视频| 国产激情偷乱视频一区二区三区| 免费在线成人激情电影| 色先锋影音av| 日本大胆欧美| 999精品视频在线| 91麻豆国产在线| 2019天天操夜夜操| 先锋资源一区| 久久99国产精品久久99| 国产免费黄色录像| 国产精品区一区二区三| 中文字幕va一区二区三区| 理论片日本一区| 欧美性视频在线播放| 欧美日韩国产免费| 亚洲一区精彩视频| 精品999日本久久久影院| 99九九久久| 国产 日韩 欧美 综合| 国产精品一区二区果冻传媒| 久久精品视频在线播放| 国产精品污网站| 久久久精品视频在线观看| 午夜精品久久久久久久蜜桃app| 欧美国产在线一区| 天堂在线观看免费视频| 国产中文字幕在线免费观看| 国产一区二区三区免费看| 久久精品人人| 国产尤物一区二区| 中文字幕日韩欧美在线视频| 97人人模人人爽视频一区二区| 成人免费视频毛片| 欧美视频专区一二在线观看| 久久精品影视| 久草视频手机在线观看| 国产成人精品免费看视频| 成年人视频观看| 欧美视频一区| 久久亚洲黄色| 国产又粗又大又爽的视频| 国产伦精品一区二区三区四区免费| 亚洲欧美韩国综合色| 日韩欧美中文免费| 亚洲丝袜一区| 可以免费在线看黄的网站| 欧美日韩免费做爰视频| 精品国产一区久久久| 99国产精品私拍| 欧美人与禽zoz0善交| 日韩电影在线一区| 国产亚洲欧美精品久久久久久| 久久综合亚洲色hezyo国产| 欧美日韩在线视频免费播放| 日韩极品视频在线观看| 日本一区二区三区www| 国产成人免费91av在线| 最新欧美人z0oozo0| 91香蕉国产在线观看软件| 亚洲福利影院| www深夜成人a√在线| 天天骑天天射| 成人免费看片39| 亚洲精品va在线观看| 久久精品视频免费播放| 3p视频在线观看| 免费在线色视频| 国产精品久久久精品a级小说| 日本中文字幕在线视频| 午夜精品久久久久久久99樱桃| 又长又粗又大又爽| 美女精品视频在线| 丰满的护士2在线观看高清| 四虎久久免费| 老司机福利av| 欧美一区午夜精品| 亚洲精品国产系列| 欧美亚洲一区二区三区四区| 高清不卡一区二区三区| 黄色在线观看www| 中文字幕在线观看欧美| 久久一区视频| 6080午夜| 性中国古装videossex| 国产不卡的av| 成年人精品视频| 在线观看91精品国产麻豆| 日本不卡1234视频| 91大片在线观看| 性欧美疯狂猛交69hd| 在线成人一区二区| 国产乱叫456| 亚洲少妇中文在线| 欧美激情国产精品免费| 亚洲精品一区二区18漫画| 美女被爆操网站| 99久久国产综合精品成人影院| 久久中文资源| 欧美美女在线直播| 九九久久久久午夜精选| 亚洲精品国产精品国| 久久爱av电影| 91成人免费在线视频| 东京干手机福利视频| 污视频在线看网站| 粉嫩av一区| 国产精品99久久久久久宅男| 国产二区视频在线观看| 一本色道**综合亚洲精品蜜桃冫| 一区二区三区精品视频在线观看| 在线免费看av的网站| 国产欧美一二三区| 国产在线无码精品| 成人午夜精品| 亚洲国产视频一区二区三区| 日本一区二区三区免费乱视频| 3p视频在线观看| 中文字幕免费在线观看视频| 韩国av永久免费| 真人抽搐一进一出视频| 神马香蕉久久| 亚洲精品在线电影| 欧美香蕉大胸在线视频观看| 黄页网站视频在线观看| 亚洲欧美自拍视频| 国产精品免费网站在线观看| 欧美成人做性视频在线播放| 色老板在线视频| 色资源在线观看| 精品无码人妻一区二区三区品| 116极品美女视频在线观看| 欧美性受xxxx免费视频| 精品成a人在线观看| 久草在线资源福利| 一本综合精品| 视频一区欧美日韩| 中文字幕人成乱码在线观看| 在线视频亚洲专区| 国产男女激情视频| 日日夜夜综合网| 99视频热这里只有精品免费| 中文字幕2022永久在线| 最近日韩中文字幕| 亚洲涩涩av| 久久黄色影视| 国产成人无码av在线播放dvd| h无码动漫在线观看| 精品人妻伦一二三区久久| 精品国产一区二区三区日日嗨| 日本一区二区在线不卡| 国产精品国产三级国产专播品爱网| 九七影院理论片| 国产日韩视频一区| 亚洲人成电影网站色www| 91亚洲精品一区二区乱码| 国产农村妇女毛片精品久久麻豆| 国产 日韩 欧美 成人| 国产精品a成v人在线播放| 男人av资源站| 色网站在线免费观看| 日韩国产精品大片| 亚洲熟妇无码乱子av电影| 亚洲一区三区在线观看| 男人本色网站| 国产极品jizzhd欧美| 人人超碰在线| 久久综合色一综合色88| 国产精品不卡一区二区三区在线观看| 在线精品视频视频中文字幕| 91久久久久久国产精品| 免费久久久一本精品久久区| 成人免费观看av| 欧美电影免费观看网站| 丁香花在线高清完整版视频| 亚洲精品国产无天堂网2021| 亚洲午夜久久久影院伊人| 亚洲人精品午夜在线观看| 欧美影视一区在线| 91精品中文在线| 在线亚洲伦理| 亚洲国产精品资源| 四虎成人欧美精品在永久在线| 久久久噜噜噜久久中文字幕色伊伊| 国产成人精品久久二区二区| 亚洲日本japanese丝袜| 精品国产区一区二区三区在线观看| 国产在线高清| 精品视频在线一区二区| 全免费一级毛片免费看| 日本在线视频1区| 日韩精品在线观看视频| caoporn超碰国产公开| 亚洲日本精品一区| 国产三级国产精品| 婷婷综合激情| 伊人久久久久久久久| 亚洲网在线观看| 精品蜜桃传媒| 一级做a爱片性色毛片| 国产精品九九九九九| 一插菊花综合| 日韩在线视频国产| 日韩理论电影院| 一本免费视频| free性欧美16hd| 久本草在线中文字幕亚洲欧美| 中文字幕欧美人妻精品| 亚洲av中文无码乱人伦在线视色| 亚洲少妇视频| 91视频 - 88av| 一区二区三区免费高清视频| 一本一道久久a久久精品综合| 日韩一级片一区二区| 肉大捧一出免费观看网站在线播放| 在线观看毛片av| 久久高清无码视频| 扒开jk护士狂揉免费| 中文字幕免费不卡| 亚洲成在人线免费视频| 91丨九色丨蝌蚪丨老版| 91sao在线观看国产| 在线看视频不卡| 久久国内精品一国内精品| 中文字幕www| 精品国产18久久久久久| 精品人妻一区二区免费| 亚洲av综合色区| 91影院未满十八岁禁止入内| 国产精品久久久久久久小唯西川| 国产高清精品在线观看| 在线区一区二视频| 亚洲激情中文1区| 日韩欧美有码在线| 亚洲精品国产精品国产| 久久国产精品区| 有色激情视频免费在线| 黄色小视频在线观看| 蜜桃精品在线观看| 无码人妻精品一区二区50| 国产精品免费视频网站| 国产精品二区在线| 国产精品午夜剧场| 日韩尤物视频| 国产美女在线精品免费观看| 欧美色片在线观看| av官网在线播放| 黄色污污视频在线观看| 国内一区二区视频| 中文字幕第一区| 欧美私人网站| 久久理论电影网| 亚洲一区二区在线视频观看| 91xx在线观看| 欧美日本一区二区三区| 一级片在线免费看| 免费福利片在线观看| 四虎精品一区二区永久在线观看| 亚洲精品视频久久久| 日日摸日日碰夜夜爽无码| 欧美中文字幕| xxxx性欧美黑人| 宅男噜噜噜66国产日韩在线观看| 俄罗斯xxxx性全过程| 喷水视频在线观看| 香蕉影院在线观看| 成人精品一二三区| 亚洲奶水xxxx哺乳期| 在线视频亚洲一区|