小編給大家分享一下怎么在Fedora中為用戶授予使用Docker的權(quán)限,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
成都創(chuàng)新互聯(lián)專注于企業(yè)成都營銷網(wǎng)站建設(shè)、網(wǎng)站重做改版、長樂網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5建站、商城網(wǎng)站定制開發(fā)、集團公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為長樂等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
為用戶授予使用Docker的權(quán)限
Fedora 19和20隨帶Docker 0.11。該軟件包在Fedora 20中已經(jīng)被更新到了1.0版本。如果你眼下仍使用使用0.11版本,就需要將權(quán)限授予Docker用戶。
docker命令行工具通過用戶組docker擁有的套接字文件/var/run/docker.sock,聯(lián)系docker守護進程。某個用戶必須是該用戶組的成員,才能聯(lián)系docker -d進程。
幸好,該說明文檔有點錯誤,你仍需要將用戶添加到docker用戶組,才能讓這些用戶通過非root帳戶使用docker。但愿所有發(fā)行版都有這條政策。
在Fedora和RHEL上,我們對docker.sock擁有下列權(quán)限:
# 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沒有授權(quán)控制機制
docker目前沒有任何的授權(quán)控制機制。如果你能與docker套接字進行對話,或者docker偵聽某個網(wǎng)絡(luò)端口,你能與之對話,就可以執(zhí)行所有的docker命令。
比如說,如果我在自己的電腦上將“dwalsh”添加到docker用戶組,就可以執(zhí)行:
> docker run -ti --rm --privileged --net=host -v /:/host fedora /bin/sh
# chroot /host
這時,你或者擁有這些權(quán)限的任何用戶都完全控制你的系統(tǒng)。
將用戶添加到docker用戶組應(yīng)該被認為與將USERNAME ALL=(ALL) NOPASSWD: ALL添加到/etc/sudoers文件一樣。用戶在其電腦上運行的任何應(yīng)用程序都可以成為root,甚至在用戶不知情的情況下。我認為,一種更安全的解決辦法就是編寫腳本,允許你想允許訪問的用戶有權(quán)訪問。
cat /usr/bin/dockersearch
#!/bin/sh
docker search $@
然后使用下面這個命令創(chuàng)建sudo:
USERNAME ALL=(ALL) NOPASSWD: /usr/bin/dockersearch
我希望最終將某一種授權(quán)數(shù)據(jù)庫添加到docker,以便管理員們可以配置你允許用戶執(zhí)行哪些命令、允許用戶開啟/停止哪些容器。
正確的***步將是,先消除執(zhí)行docker run --privileged或docker run --cap-remove的功能。
以上是“怎么在Fedora中為用戶授予使用Docker的權(quán)限”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!