不應該在沒有 sudo 的情況下執行 Docker 的原因
導讀 | 預設情況下,您需要 root 許可權才能在 上執行任何與 Docker 相關的 。當然,為了方便起見,您可以更改此設定並在沒有 root 許可權的情況下執行 Docker ,但您應該注意安全隱患。 |
Docker 是開發人員的安全容器化平臺。既然它如此安全,為什麼不能在沒有超級使用者許可權的情況下執行它?
Docker 是最常用的容器化平臺之一,深受軟體工程師的喜愛。它帶有一個強大的 CLI 工具,用於管理 Docker 容器和其他相關任務。
預設情況下,您需要 root 許可權才能在 Linux 上執行任何與 Docker 相關的命令。當然,為了方便起見,您可以更改此設定並在沒有 root 許可權的情況下執行 Docker 命令,但您應該注意安全隱患。
攻擊面是惡意使用者可以用來進入系統並造成嚴重破壞的攻擊點數量,更像是視窗數量。根據經驗,IT 系統應具有最小的攻擊面,以降低安全風險。
一般來說,Docker 的攻擊面非常小。容器在安全的隔離環境中執行,除非另有規定,否則不會影響主機作業系統。此外,Docker 容器只執行最少的服務,這使得它更安全。
您可以將 Linux 系統配置為在沒有 sudo 許可權的情況下控制 Docker。這在開發環境中可能很方便,但在生產系統中可能是一個嚴重的安全漏洞。這就是為什麼你永遠不應該在沒有 sudo 的情況下執行 Docker。
如果沒有 sudo 許可權,任何有權訪問您的系統或伺服器的人都可以控制 Docker 的各個方面。他們有權訪問您的 Docker 日誌檔案,並且可以隨意或意外地停止和刪除容器。您還可能丟失對業務連續性至關重要的關鍵資料。
如果在生產環境中使用 Docker 容器,停機會導致業務和信任損失。
Docker 卷是一項功能強大的服務,允許您透過將容器資料寫入主機作業系統上的指定資料夾來共享和保留容器資料。
在沒有 sudo 的情況下執行 Docker 帶來的最大威脅之一是系統上的任何人都可以控制主機作業系統的目錄,包括根目錄。
您所要做的就是執行 Linux Docker 映像,例如 Ubuntu 映像,並使用以下命令將其掛載到根資料夾上:
root@linuxmi:/home/linuxmi/
輸出如下:
Unable to find image 'ubuntu:latest' locally latest: Pulling from library/ubuntu 6e3729cf69e0: Pull complete Digest: sha256:27cb6e6ccef575a4698b66f5de06c7ecd61589132d5a91d098f7f3f9285415a9 Status: Downloaded newer image for ubuntu:latest
由於 Linux Docker 容器以 root 使用者身份執行,因此本質上意味著您可以訪問整個根資料夾。
上述命令將下載並執行最新的 Ubuntu 映像並將其掛載到根目錄上。
在 Docker 容器終端上,使用 cd 命令轉到 /hostproot 目錄:
root@c977c6de6265:/# cd /hostproot
使用 ls 命令列出此目錄的內容將顯示容器中現在可用的主機作業系統的所有檔案。現在,您可以操作檔案,檢視機密檔案,隱藏和取消隱藏檔案,更改許可權等。
精心製作的 Docker 映像可以在後臺執行並作業系統或收集敏感資料。更糟糕的是,惡意使用者可能會透過 Docker 容器在您的網路上傳播惡意程式碼。
Docker 容器有幾個實際用例,每個應用程式都會帶來一組不同的安全威脅。
Docker是一個強大而安全的平臺。在沒有 sudo 的情況下執行 Docker 會增加您的攻擊面並使您的系統容易受到攻擊。在生產環境中,強烈建議您將 sudo 與 Docker 一起使用。
由於系統上有如此多的使用者,因此很難為每個使用者分配許可權。在這種情況下,遵循最佳訪問控制實踐可以幫助您維護系統的安全性。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2931983/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 開始使用 Org 模式吧,在沒有 Emacs 的情況下模式Mac
- JPA EntityManager 在沒有實體類的情況下返回Map
- 有return的情況下try catch finally的執行順序
- (轉)有return的情況下try catch finally的執行順
- Nature回應:為什麼在沒有程式碼的情況下發布AlphaFold3?
- 在沒有curl和wget情況下傳送HTTP請求wgetHTTP
- 在不影響程式使用的情況下新增shellcode
- 您的主機不滿足在啟用Hyper-V的情況下執行VMware player的最低要求
- ORACLE expdp在表空間較多的情況下執行非常緩慢Oracle
- 在eclipse中執行maven命令沒有反應,console也不列印資訊EclipseMaven
- 在沒有開啟審計的情況下定位Oracle錯誤的登入Oracle
- 在沒有本地安裝的情況下在 Postman 上測試您的端點Postman
- 3.1.5.3 在不掛載資料庫的情況下啟動例項資料庫
- Mac 下 Docker 執行較慢的原因分析及個人見解MacDocker
- 在沒有上傳伺服器端的情況下看到上傳圖片的效果圖window.createObjectURL伺服器Object
- 如何這沒有顯示器的情況下獲取樹莓派IP?樹莓派
- 沒有介面文件的情況下如何開展介面自動化測試?
- 【Azure Standard Logic App】Workflow積壓非常嚴重的情況下, 執行例項居然不能自動縮放的原因?APP
- Docker命令-docker exec-在執行的容器中執行命令Docker
- 求助:沒有產品說明文件和需求文件的情況下能夠進行黑盒測試嗎?
- Go高階特性 12 | 指標詳解:在什麼情況下應該使用指標?Go指標
- 成都現在的情況
- win10提示您的主機不滿足在啟用Hyper-V或Device/Credential Guard的情況下執行VMware怎麼辦Win10dev
- 設定非root賬號不用sudo直接執行docker命令Docker
- 不聯網的情況下,使用 electron-builder 快速打包全平臺應用UI
- mysql索引不會命中的情況MySql索引
- 4.3.4.1 在不使用Oracle OMF的情況下建立CDBOracle
- 使用了 sudo 卻依然顯示許可權不夠的原因
- 框架下載後解壓失敗,有沒有遇到同樣情況的?框架
- 無需sudo使用Podman在Linux上執行容器Linux
- 有資金的情況下應該如何做好遊戲推廣 大企業營銷 遊戲引流 裂變遊戲
- gorm使用事務併發情況下切有最大mysql連線數限制的情況下的BUG,踩坑了GoORMMySql
- Docker執行基於ubuntu映象的容器後沒有ifconfig和ping的解決方法DockerUbuntu
- 找二維陣列中的鞍點:即該位置上的元素在該行最大,在該列最小(也可能沒有鞍點)陣列
- 關於移動網際網路廣告在人群分化的情況下該如何投放ZFV
- vue在不確定介面何時請求完的情況下,如何改變陣列Vue陣列
- docker容器無法啟動的情況下,如果修改配置檔案Docker
- 在不安裝oracle客戶端的情況下,使用PLSQLOracle客戶端SQL