您好,登錄后才能下訂單哦!
小編給大家分享一下怎么在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的權限”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。