這篇文章主要介紹“Docker容器運行時權(quán)限和Linux系統(tǒng)功能簡單介紹”,在日常操作中,相信很多人在Docker容器運行時權(quán)限和Linux系統(tǒng)功能簡單介紹問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Docker容器運行時權(quán)限和Linux系統(tǒng)功能簡單介紹”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
在莊河等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供做網(wǎng)站、網(wǎng)站制作 網(wǎng)站設(shè)計制作按需網(wǎng)站制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計,成都全網(wǎng)營銷,成都外貿(mào)網(wǎng)站建設(shè)公司,莊河網(wǎng)站建設(shè)費用合理。相關(guān)Docker參數(shù)
--cap-add: Add Linux capabilities --cap-drop: Drop Linux capabilities --privileged=false: Give extended privileges to this container --device=[]: Allows you to run devices inside the container without the --privileged flag.
出于容器之間和容器與宿主機的安全隔離保護,在默認(rèn)的Docker配置下,Docker容器是沒有系統(tǒng)權(quán)限的。例如不能在一個Docker容器內(nèi),再運行一個Dokcer服務(wù)(譯者注:或者在容器內(nèi)修改系統(tǒng)時間)。這是因為在默認(rèn)情況下,容器內(nèi)的進程不允許訪問任何宿主機上的設(shè)備。只有獲得設(shè)備訪問授權(quán)的容器,才可以訪問所有設(shè)備(請參閱關(guān)于 cgroups設(shè)備的文檔)。
當(dāng)容器管理員執(zhí)行docker run --privileged
時,將允許Docker容器訪問宿主機上的所有設(shè)備,并在AppArmor或SELinux中設(shè)置一些配置,使容器內(nèi)的進程可以與容器外運行的進程幾乎一樣權(quán)限來訪問宿主機。(有關(guān)運行--privileged
參數(shù)的更多信息,請訪問
Docker博客。)
如果想限制對特定設(shè)備的訪問,可以使用--device
參數(shù)。它允許您指定從容器內(nèi)訪問的一個或多個設(shè)備。
$ docker run --device=/dev/snd:/dev/snd ...
開啟--device
參數(shù)后,容器內(nèi)的進程默認(rèn)將獲得這些設(shè)備的read
、write
和mknod
權(quán)限。您也可以為每個--device
參數(shù),附加第三個:rwm
選項來覆蓋默認(rèn)的設(shè)置:
$ docker run --device=/dev/sda:/dev/xvdc --rm -it ubuntu fdisk /dev/xvdc Command (m for help): q $ docker run --device=/dev/sda:/dev/xvdc:r --rm -it ubuntu fdisk /dev/xvdc You will not be able to write the partition table. Command (m for help): q $ docker run --device=/dev/sda:/dev/xvdc:w --rm -it ubuntu fdisk /dev/xvdc crash.... $ docker run --device=/dev/sda:/dev/xvdc:m --rm -it ubuntu fdisk /dev/xvdc fdisk: unable to open /dev/xvdc: Operation not permitted
除了--privileged
之外,操作員還可以使用--cap-add
和--cap-drop
對功能進行細(xì)粒度控制。默認(rèn)情況下,Docker有一個保留的默認(rèn)功能列表。
下表列出了Linux功能選項,這些選項是默認(rèn)允許的,可以刪除。
功能項 | 功能描述 |
---|---|
SETPCAP | 修改進程的權(quán)限 |
MKNOD | 使用mknod(2)創(chuàng)建特殊文件 |
AUDIT_WRITE | 將記錄寫入內(nèi)核審計日志 |
CHOWN | 任意更改文件UIDs和GIDs(見chown(2)) |
NET_RAW | 使用 RAW 和 PACKET 套接字 |
DAC_OVERRIDE | 繞過文件的讀、寫和執(zhí)行權(quán)限檢查 |
FOWNER | 繞過對進程的文件系統(tǒng)UID與文件的UID進行權(quán)限匹配的檢查操作 |
FSETID | 當(dāng)文件被修改時,不要清除set-user-ID和set-group-ID權(quán)限位 |
KILL | 繞過發(fā)送信號的權(quán)限檢查 |
SETGID | 自定義處理進程GID和補充GID列表 |
SETUID | 自定義處理進程UID |
NET_BIND_SERVICE | 將套接字綁定到互聯(lián)網(wǎng)域名專用端口(端口號小于1024)。 |
SYS_CHROOT | 使用chroot(2),更改根目錄 |
SETFCAP | 設(shè)置文件功能 |
下表顯示了默認(rèn)情況下未授予的功能,可以手動添加這些功能。
功能項 | 功能描述 |
---|---|
SYS_MODULE | 加載和卸載內(nèi)核模塊 |
SYS_RAWIO | 執(zhí)行I / O端口操作(iopl(2)和ioperm(2)) |
SYS_PACCT | 使用acct(2),打開或關(guān)閉進程計數(shù) |
SYS_ADMIN | 執(zhí)行一系列系統(tǒng)管理操作 |
SYS_NICE | 提高進程的nice值(nice(2),setpriority(2))并更改任意進程的nice值 |
SYS_RESOURCE | 覆蓋資源限制 |
SYS_TIME | 設(shè)置系統(tǒng)時鐘(settimeofday(2),stime(2),adjtimex(2)); 設(shè)置實時(硬件)時鐘 |
SYS_TTY_CONFIG | 使用vhangup(2); 在虛擬終端上使用各種特權(quán)的ioctl(2)操作 |
AUDIT_CONTROL | 啟用和禁用內(nèi)核審核; 更改審核過濾器規(guī)則; 檢索審核狀態(tài)和過濾規(guī)則 |
MAC_ADMIN | 允許MAC配置或狀態(tài)更改。 為Smack LSM而實現(xiàn)的功能 |
MAC_OVERRIDE | 覆蓋強制訪問控制(MAC)。 為Smack Linux安全模塊(LSM)實現(xiàn) |
NET_ADMIN | 執(zhí)行各種與網(wǎng)絡(luò)相關(guān)的操作 |
SYSLOG | 執(zhí)行syslog(2)的權(quán)限操作。 |
DAC_READ_SEARCH | 繞過文件讀取權(quán)限檢查以及目錄讀取和執(zhí)行權(quán)限檢查 |
LINUX_IMMUTABLE | 設(shè)置FS_APPEND_FL和FS_IMMUTABLE_FL i-node 標(biāo)志 |
NET_BROADCAST | 使套接字可以實現(xiàn)廣播,并監(jiān)聽廣播包 |
IPC_LOCK | 鎖定內(nèi)存(mlock(2),mlockall(2),mmap(2),shmctl(2)) |
IPC_OWNER | 繞過對System V IPC對象操作的權(quán)限檢查 |
SYS_PTRACE | 使用ptrace(2)跟蹤任意進程 |
SYS_BOOT | 使用reboot(2)和kexec_load(2),重新引導(dǎo)并加載新內(nèi)核以供程序執(zhí)行 |
LEASE | 在任意文件上建立Lease租約(請參閱fcntl(2)) |
WAKE_ALARM | 觸發(fā)喚醒系統(tǒng)的操作 |
BLOCK_SUSPEND | 開啟可以阻止系統(tǒng)掛起的功能 |
更多的參考信息可以在 capabilities(7) - Linux man page Linux手冊頁中找到
--cap-add --cap-drop
兩個參數(shù)都支持值ALL
,所以如果Docker管理員想要獲得除了MKNOD
以外的所有Linux功能,可以使用:
$ docker run --cap-add=ALL --cap-drop=MKNOD ...
如果想與系統(tǒng)的網(wǎng)絡(luò)堆棧進行交互,應(yīng)該使用--cap-add=NET_ADMIN
來修改網(wǎng)絡(luò)接口,而不是使用--privileged
。
$ docker run -it --rm ubuntu:14.04 ip link add dummy0 type dummy RTNETLINK answers: Operation not permitted $ docker run -it --rm --cap-add=NET_ADMIN ubuntu:14.04 ip link add dummy0 type dummy
要安裝一個基于FUSE的文件系統(tǒng),您需要結(jié)合--cap-add
和--device
:
$ docker run --rm -it --cap-add SYS_ADMIN sshfs sshfs sven@10.10.10.20:/home/sven /mnt fuse: failed to open /dev/fuse: Operation not permitted $ docker run --rm -it --device /dev/fuse sshfs sshfs sven@10.10.10.20:/home/sven /mnt fusermount: mount failed: Operation not permitted $ docker run --rm -it --cap-add SYS_ADMIN --device /dev/fuse sshfs # sshfs sven@10.10.10.20:/home/sven /mnt The authenticity of host '10.10.10.20 (10.10.10.20)' can't be established. ECDSA key fingerprint is 25:34:85:75:25:b0:17:46:05:19:04:93:b5:dd:5f:c6. Are you sure you want to continue connecting (yes/no)? yes sven@10.10.10.20's password: root@30aa0cfaf1b5:/# ls -la /mnt/src/docker total 1516 drwxrwxr-x 1 1000 1000 4096 Dec 4 06:08 . drwxrwxr-x 1 1000 1000 4096 Dec 4 11:46 .. -rw-rw-r-- 1 1000 1000 16 Oct 8 00:09 .dockerignore -rwxrwxr-x 1 1000 1000 464 Oct 8 00:09 .drone.yml drwxrwxr-x 1 1000 1000 4096 Dec 4 06:11 .git -rw-rw-r-- 1 1000 1000 461 Dec 4 06:08 .gitignore ....
默認(rèn)的seccomp配置文件將根據(jù)所選的功能進行調(diào)整,以允許使用功能所允許的功能,所以從Docker1.12之后的版本,不應(yīng)該對此進行調(diào)整。在Docker 1.10和1.11中沒有這種情況,在添加功能時可能需要使用一個自定義的seccomp配置文件或使用--security-opt seccomp=unconfined
。
到此,關(guān)于“Docker容器運行時權(quán)限和Linux系統(tǒng)功能簡單介紹”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
網(wǎng)頁標(biāo)題:Docker容器運行時權(quán)限和Linux系統(tǒng)功能簡單介紹-創(chuàng)新互聯(lián)
網(wǎng)頁路徑:http://www.rwnh.cn/article22/jcocc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、響應(yīng)式網(wǎng)站、App設(shè)計、關(guān)鍵詞優(yōu)化、外貿(mào)網(wǎng)站建設(shè)、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容