Этот вопрос не подобен Никакому устройству бочки в lxc госте для openvpn. LXC развился, и непривилегированные контейнеры LXC были недавно представлены, которые предлагают другой уровень безопасности против повреждения тюрьмы.
Я должен создать сервер OpenVPN в одном из непривилегированного контейнера. Я не знаю, как позволить контейнеру создать частное сетевое устройство бочки.
Я действительно добавлял lxc.cgroup.devices.allow = c 10:200 rwm
к ~/.local/share/lxc/mylxc/config
.
После запуска контейнера, mknod /dev/net/tun c 10 200
возвраты mknod: '/dev/net/tun': Operation not permitted
в контейнере.
Я использую ванильную Ubuntu 14.04 64bit в качестве хоста и контейнера, созданного с
lxc-create -t download -n mylxc -- -d ubuntu -r trusty -a amd64
Сделал любого, сумел добраться /dev/tun
устройство, работающее под непривилегированным LXC?
Udinga ukufaka ngokusobala amandla we-CAP_MKNOD esitsheni sakho esingu- .
lxc.cap.keep Cacisa amandla okufanele agcinwe esitsheni. Konke okunye amakhono azokwehliswa. Lapho inani elikhethekile elithi "none" ihlangatsheziwe, i-lxc izosula noma imaphi amandla wokugcina acacisiwe kuze kube manje. Inani elithi "none" lilodwa lingasetshenziswa ukudonsa wonke amakhono.
Ungazama futhi ukushintsha lokhu (uma kungenzeka usebenzise systemd
ngaphakathi kwesitsha) usebenzisa:
lxc.hook.autodev Ingwegwe ezosebenziswa endaweni yegama lesitsha ngemuva kokukhweza kwenziwe futhi ngemuva kokuthi noma yiziphi izingwegwe zokugijima zisebenzile, kodwa ngaphambili i-pivot_root, uma i-lxc.autodev == 1. Inhloso yale hook ukusiza ekugcwaliseni umkhombandlela we-dev wesitsha lapho usebenzisa inketho ye-autodev yeziqukathi ezisuselwe kusistimu. Umkhombandlela wesiqukathi / dev uhlobene ne- $ {LXC_ROOTFS_MOUNT} ukuguquguquka kwemvelo kutholakala lapho ifayela le- ingwegwe iyenziwa.
engakhomba iskripthi esisebenzisa mknod
.
Usebenzisa docker
lokhu kulula kakhulu ukukufeza. Ngokuzenzakalelayo, iziqukathi azinayo .
Kulesi sibonelo, ngidonsa trusty
isitsha kusuka kwirejista:
sudo -r sysadm_r docker pull corbinu/docker-trusty
Pulling repository corbinu/docker-trusty
...
Status: Downloaded newer image for corbinu/docker-trusty:latest
Futhi ngikuqala ngemodi yokusebenzisana ekwaziseni mayelana namandla engiwadingayo ngaphakathi:
sudo -r sysadm_r docker run --cap-drop ALL --cap-add MKNOD \
-i -t corbinu/docker-trusty bash
root@46bbb43095ec:/# ls /dev/
console fd/ full fuse kcore mqueue/ null ptmx pts/ random shm/ stderr stdin stdout tty urandom zero
root@46bbb43095ec:/# mkdir /dev/net
root@46bbb43095ec:/# mknod /dev/net/tun c 10 200
root@46bbb43095ec:/# ls -lrt /dev/net/tun
crw-r--r--. 1 root root 10, 200 Apr 6 16:52 /dev/net/tun
Ngokuphikisana no:
sudo -r sysadm_r docker run --cap-drop ALL \
-i -t corbinu/docker-trusty bash
root@9a4cdc75a5ec:/# mkdir /dev/net
root@9a4cdc75a5ec:/# mknod /dev/net/tun c 10 200
mknod: ‘/dev/net/tun’: Operation not permitted