亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

docker容器非root用戶提權(quán)的問題解決

 更新時間:2022年04月21日 08:52:38   作者:字母哥哥  
本文主要介紹了docker容器非root用戶提權(quán)的問題解決,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本系列之前的文章中使用root用戶安裝docker,并在root用戶下啟動docker守護進程,容器也是在root用戶下啟動運行的。那么問題就出現(xiàn)了:我們的容器服務(wù)進程都是root用戶權(quán)限,使用數(shù)據(jù)卷的方式想掛載哪個目錄就掛載那個目錄;想修改掛載目錄下的哪個文件,就修改哪個文件。 那么我們本文帶大家使用非root用戶來啟動docker容器,是否就安全了呢? 我們先不說答案,讓我們一起來通過實驗,來解答我們的疑問。

一、使用非root用戶啟動docker容器

為了提升安全性,我們考慮一種方案:使用非root用戶啟動docker容器。為此我們做一個實驗,首先我們創(chuàng)建一個普通用戶zimug,執(zhí)行命令 useradd zimug;。并且將這個用戶加入docker用戶組,因為docker用戶組的用戶才能啟動docker容器。

#zimug加入docker用戶組
usermod -G docker zimug;  
#在zimug用戶下啟動容器
docker run -d --name nginx-zimug -p  80:80  nginx; 

以上的操作證明使用非root用戶啟動docker容器是可行的,但是安全性有沒有得到提升,我們還需要驗證。

二、驗證非root用戶啟動容器的安全性

回到docker服務(wù)所在的宿主機服務(wù)器上,使用 root 賬號將"zimug test"這樣一個字符串寫入測試文件 test.txt

mkdir -p /root/test;
echo "zimug test" > /root/test/test.txt;

然后使用su命令切換到zimug這個用戶,使用cat命令查看文件提示權(quán)限不夠無法查看文件,到此一切正常。

[root]# su - zimug;
[zimug]$ cat  /root/test/test.txt;
cat: /root/test/test.txt: 權(quán)限不夠

然后我們在zimug用戶下啟動一個容器nginx-zimug1,需要記住非常重要的一點是:這個容器我們是在非root用戶zimug下啟動的。

[zimug]$ docker run -d --name nginx-zimug1 \
 -p  81:80  \
 -v /root/test/test.txt:/root/test/test.txt nginx; 

然后我們進入容器內(nèi)部修改/root/test/test.txt這個文件,向文件內(nèi)echo寫入一個字符串:“zimug test update file in container”,表示這個文件我們在容器內(nèi)部進行修改。

# 進入容器內(nèi)部
[zimug]$ docker exec -it nginx-zimug1 /bin/bash
# 進入容器后使用下面的命令修改文件,然后exit退出
echo "zimug test update file in container" > /root/test/test.txt;

回到宿主機上使用 root 賬號確認 /root/test/test.txt 文件內(nèi)容。發(fā)生了我們不愿見到的結(jié)果:普通用戶zimug啟動一個容器,可以隨意映射root用戶文件,并且在容器內(nèi)修改這個文件,root用戶的文件內(nèi)容也隨之更改。

# cat /root/test/test.txt
zimug test update file in container

之所以出現(xiàn)這個問題,有兩個原因:一是docker容器本質(zhì)是宿主機服務(wù)器上的一個進程,不做特殊處理的情況下,容器里的root用戶和宿主機上的root用戶實際上是同一個用戶;二是docker存在一個守護進程,即使用systemctl start docker啟動的那個服務(wù)進程。因為我們安裝docker是root用戶安裝的,該守護進程也是用root用戶啟動的,即使容器是非root用戶運行的也存在較大的安全問題,是docker安全性問題的重要風(fēng)險點。
解決這個問題有兩個通用方法:就是容器用戶與宿主機用戶的id段映射;二是使用非root用戶搭建docker并啟動守護進程。

到此這篇關(guān)于docker容器非root用戶提權(quán)的問題解決的文章就介紹到這了,更多相關(guān)docker 非root用戶提權(quán)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • docker安裝redis設(shè)置密碼并連接的操作

    docker安裝redis設(shè)置密碼并連接的操作

    這篇文章主要介紹了docker安裝redis設(shè)置密碼并連接的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • CentOS7安裝使用Docker的步驟

    CentOS7安裝使用Docker的步驟

    本篇文章主要介紹了詳解CentOS7安裝使用Docker的步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • 基于Docker的MySQL主從復(fù)制環(huán)境搭建的實現(xiàn)步驟

    基于Docker的MySQL主從復(fù)制環(huán)境搭建的實現(xiàn)步驟

    這篇文章主要介紹了基于Docker的MySQL主從復(fù)制環(huán)境搭建的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • docker部署應(yīng)用的三種方式

    docker部署應(yīng)用的三種方式

    越來越多的前端團隊選擇用Docker部署前端項目,本文主要介紹了docker部署應(yīng)用的三種方式,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • Docker 容器之間的互相通信實現(xiàn)示例

    Docker 容器之間的互相通信實現(xiàn)示例

    本文主要介紹了Docker 容器之間的互相通信實現(xiàn)示例,通過創(chuàng)建自定義網(wǎng)絡(luò),你可以輕松地在 Docker 容器之間建立通信,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01
  • Docker使用java項目工程的部署

    Docker使用java項目工程的部署

    隨著容器化技術(shù)的廣泛應(yīng)用,Docker成為了一種非常流行的容器化解決方案,本文主要介紹了Docker使用java項目工程的部署,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • docker容器從入門到癡迷(推薦)

    docker容器從入門到癡迷(推薦)

    這篇文章主要介紹了docker容器從入門到癡迷,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • docker之更新jar問題

    docker之更新jar問題

    這篇文章主要介紹了docker之更新jar問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Docker大型項目容器化改造

    Docker大型項目容器化改造

    今天小編就為大家分享一篇關(guān)于Docker大型項目容器化改造,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Docker中運行PostgreSQL并推薦幾款連接工具

    Docker中運行PostgreSQL并推薦幾款連接工具

    PostgreSQL支持大部分的SQL標準并且提供了很多其他現(xiàn)代特性,如復(fù)雜查詢、外鍵、觸發(fā)器、視圖、事務(wù)完整性、多版本并發(fā)控制等,今天給大家介紹Docker中運行PostgreSQL并推薦幾款連接工具,需要的朋友參考下吧
    2021-06-06

最新評論