共計 1323 個字符,預計需要花費 4 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
丸趣 TV 小編給大家分享一下怎么在 Fedora 中為用戶授予使用 Docker 的權限,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
為用戶授予使用 Docker 的權限
Fedora 19 和 20 隨帶 Docker 0.11。該軟件包在 Fedora 20 中已經被更新到了 1.0 版本。如果你眼下仍使用使用 0.11 版本,就需要將權限授予 Docker 用戶。
docker 命令行工具通過用戶組 docker 擁有的套接字文件 /var/run/docker.sock,聯系 docker 守護進程。某個用戶必須是該用戶組的成員,才能聯系 docker - d 進程。
幸好,該說明文檔有點錯誤,你仍需要將用戶添加到 docker 用戶組,才能讓這些用戶通過非 root 帳戶使用 docker。但愿所有發行版都有這條政策。
在 Fedora 和 RHEL 上,我們對 docker.sock 擁有下列權限:
# ls -l /run/docker.sock
srw-rw—-. 1 root docker 0 Sep 19 12:54
/run/docker.sock
這意味著,只有 root 用戶或 docker 用戶組中的用戶才能與該套接字進行對話。另外由于 docker 運行 asdocker_t,SELinux 防止所有被限制的域連接到該 docker.sock。
docker 沒有授權控制機制
docker 目前沒有任何的授權控制機制。如果你能與 docker 套接字進行對話,或者 docker 偵聽某個網絡端口,你能與之對話,就可以執行所有的 docker 命令。
比如說,如果我在自己的電腦上將“dwalsh”添加到 docker 用戶組,就可以執行:
docker run -ti –rm –privileged –net=host -v /:/host fedora /bin/sh
# chroot /host
這時,你或者擁有這些權限的任何用戶都完全控制你的系統。
將用戶添加到 docker 用戶組應該被認為與將 USERNAME ALL=(ALL) NOPASSWD: ALL 添加到 /etc/sudoers 文件一樣。用戶在其電腦上運行的任何應用程序都可以成為 root,甚至在用戶不知情的情況下。我認為,一種更安全的解決辦法就是編寫腳本,允許你想允許訪問的用戶有權訪問。
cat /usr/bin/dockersearch
#!/bin/sh
docker search $@
然后使用下面這個命令創建 sudo:
USERNAME ALL=(ALL) NOPASSWD: /usr/bin/dockersearch
我希望最終將某一種授權數據庫添加到 docker,以便管理員們可以配置你允許用戶執行哪些命令、允許用戶開啟 / 停止哪些容器。
正確的 *** 步將是,先消除執行 docker run –privileged 或 docker run –cap-remove 的功能。
以上是“怎么在 Fedora 中為用戶授予使用 Docker 的權限”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!
向 AI 問一下細節
丸趣 TV 網 – 提供最優質的資源集合!