不應該在沒有 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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JPA EntityManager 在沒有實體類的情況下返回Map
- 開始使用 Org 模式吧,在沒有 Emacs 的情況下模式Mac
- Windows 98 在沒有註冊的情況下對系統進行更新(轉)Windows
- 沒有tag標識備份的情況下incremental updating backup是如何執行的REM
- 沒有連線target database的情況下執行RMAN duplicate可能引發的問題Database
- 有return的情況下try catch finally的執行順序
- (轉)有return的情況下try catch finally的執行順
- Nature回應:為什麼在沒有程式碼的情況下發布AlphaFold3?
- 測試在cursor_sharing為force情況下執行計劃的共享情況
- 其他資訊: 混合模式程式集是針對“v2.0.50727”版的執行時生成的,在沒有配置其他資訊的情況下,無法在 4.0 執行時中載入該程式集模式
- 沒有備份的情況下處理undo損壞
- 在這兒下的 jdon有沒有在sybase資料庫下執行成功的朋友?資料庫
- 在沒有curl和wget情況下傳送HTTP請求wgetHTTP
- 您的主機不滿足在啟用Hyper-V的情況下執行VMware player的最低要求
- 如何在沒有前端框架的情況下實現元件化前端框架元件化
- 在不影響程式使用的情況下新增shellcode
- 誤刪資料檔案在沒有歸檔的情況下恢復實驗
- ORACLE expdp在表空間較多的情況下執行非常緩慢Oracle
- 資料泵匯入-在物件已存在的情況下執行匯入物件
- 資料庫在沒有備份的情況下的資料檔案損壞的恢復資料庫
- oracle11g在沒DNS情況下failover的配置方法OracleDNSAI
- 使用代理上網的情況下,如何在 cmd 下執行 mvn?
- 沒有備份的情況下如何處理logical & physical corrupt blockBloC
- 在沒有開啟審計的情況下定位Oracle錯誤的登入Oracle
- 在沒有本地安裝的情況下在 Postman 上測試您的端點Postman
- 什麼情況下應該分解複雜的查詢來提升效能
- 有return的情況下try catch finally的執行順序(最有說服力的總結)
- 如何這沒有顯示器的情況下獲取樹莓派IP?樹莓派
- 沒有介面文件的情況下如何開展介面自動化測試?
- Mac 下 Docker 執行較慢的原因分析及個人見解MacDocker
- 3.1.5.3 在不掛載資料庫的情況下啟動例項資料庫
- 在沒有上傳伺服器端的情況下看到上傳圖片的效果圖window.createObjectURL伺服器Object
- 多個Filter的執行具體情況Filter
- 沒有自動備份的情況下控制檔案全部丟失的恢復
- 在eclipse中執行maven命令沒有反應,console也不列印資訊EclipseMaven
- Linux下執行一些命令前加sudo時出現command not found的原因Linux
- 在不會使用excel函式的情況下如何完成複雜任務Excel函式
- 查詢當前正在執行的job的情況