<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Docker容器中用戶權(quán)限管理

          共 1686字,需瀏覽 4分鐘

           ·

          2021-07-12 22:32

          點(diǎn)擊上方藍(lán)色字體,選擇“標(biāo)星公眾號(hào)”

          優(yōu)質(zhì)文章,第一時(shí)間送達(dá)

            作者 |  周知非

          來源 |  urlify.cn/ve6bAv

          在Linux系統(tǒng)中有一部分知識(shí)非常重要,就是關(guān)于權(quán)限的管理控制;Linux系統(tǒng)的權(quán)限管理是由uid和gid負(fù)責(zé),Linux系統(tǒng)會(huì)檢查創(chuàng)建進(jìn)程的uid和gid,以確定它是否有足夠的權(quán)限修改文件,而非是通過用戶名和用戶組來確認(rèn)。同樣,在docker容器中主機(jī)上運(yùn)行的所有容器共享同一個(gè)內(nèi)核也可以理解為共享權(quán)限管理方式。

          Docker容器的權(quán)限管理方式分為了三種情況:
          1.默認(rèn)使用的root權(quán)限
          不管是以root用戶還是以普通用戶(有啟動(dòng)docker容器的權(quán)限)啟動(dòng)docker容器,容器進(jìn)程和容器內(nèi)的用戶權(quán)限都是root!
          新建了sleep用戶,以sleep用戶權(quán)限啟動(dòng)容器并在有root權(quán)限的磁盤進(jìn)行權(quán)限測(cè)試。

          docker run -v /data/sleep:/sleep  -d --name sleep-1 ubuntu sleep infinity

          在宿主機(jī)中/data/sleep路徑新建了leo_zhou文件并在文件寫入“docker”,然后進(jìn)入sleep-1容器

          docker exec -it sleep-1 bash


          依然可以正常操作擁有root權(quán)限的文件。

          2.限制Docker容器啟動(dòng)的用戶
          新增--user參數(shù),使容器啟動(dòng)用戶變成指定的sleep用戶,發(fā)現(xiàn)并不能操作擁有root權(quán)限的文件了。會(huì)發(fā)現(xiàn)容器中的uid號(hào)和實(shí)際主機(jī)中的uid號(hào)一樣,也驗(yàn)證了docker容器使用宿主機(jī)的內(nèi)核??梢砸欢ǔ潭冗M(jìn)行權(quán)限管理。

          3.使用namespace隔離技術(shù)
          namespace是一種隔離技術(shù),docker就是使用隔離技術(shù)開啟特定的namespace創(chuàng)建出一些特殊的進(jìn)程,不過使用namespace是有條件的。系統(tǒng)會(huì)創(chuàng)建dockremap,通過/etc/subuid和/etc/subuid對(duì)應(yīng)的id值,映射到容器中去;實(shí)際情況還是使用的是dockremap普通權(quán)限,達(dá)到自動(dòng)隔離的效果。
          ①開啟Centos內(nèi)核中關(guān)閉的user namespace的功能。

          grubby --args="namespace.unpriv_enable=1 user_namespace.enable=1" --update-kernel="$(grubby --default-kernel)"
          echo "user.max_user_namespaces=15076" >> /etc/sysctl.conf

          ②修改/etc/docker/daemon.json配置,新增"userns-remap": "default"選項(xiàng),default默認(rèn)就是docker自動(dòng)創(chuàng)建的用戶dockremap,然后重啟docker。
          修改此項(xiàng)配置需要慎重,如果是已經(jīng)部署了一套docker環(huán)境,啟用此選項(xiàng)后,會(huì)切換到隔離環(huán)境,以前的docker容器將無法使用!

          ③Centos需要手動(dòng)輸入id值映射范圍

          最后systemctl restart docker后再次測(cè)試效果,發(fā)現(xiàn)文件權(quán)限已經(jīng)變成nobody,但docker容器內(nèi)部依然是以"root"的權(quán)限管理,但實(shí)際只有普通用戶的權(quán)限,從而達(dá)到權(quán)限隔離的效果。









          瀏覽 131
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  www.麻豆网91成人久久久 | 国产内射在线播放 | 亚洲五月天堂 | 麻酥酥在线视频 | 北条麻纪一区二区三区在线观看视频 |