Pull to refresh

Lxcfs штука, конечно, хорошая, но с тем условием, что рут благонадёжен. Иначе он сделает, например, umount /proc/uptime и - вуаля. Ну вы поняли.

Как-то раз брал я VPS-ку в одной канадской компании, на LXC. Было весело. Не знаю, живы они сейчас или нет.

Весь этот бред имеет смысл только когда весь софт на вашей машинке вместе с самой машинкой заслуживает доверия. Очень смешно, да? Ну, хотя-бы попробуем иллюзию безопасности.

Например, вэйланд копается в /sys, чтобы найти девайс для аппаратного рендеринга. Давайте его приоткроем, монтируя лишнее в /dev/null и tmpfs:

mount -t sysfs -o noexec,nodev,nosuid sysfs "${LXC_ROOTFS_MOUNT}/sys"
clobber "${LXC_ROOTFS_MOUNT}/sys" "dev devices"
clobber "${LXC_ROOTFS_MOUNT}/sys/dev" "char"
clobber "${LXC_ROOTFS_MOUNT}/sys/devices" "pci0000:00"
clobber "${LXC_ROOTFS_MOUNT}/sys/devices/pci0000:00" "0000:00:02.0"

Все эти pci0000:00 у вас могут быть другими, их лучше вытащить из /dev/dri/by-path, но для примера сойдёт и так. Функцию clobber см. в комментах. Я не буду пытаться её впихнуть в оставшиеся 59 символов.

Положите это в mount hook, я использую тот, что от lxcfs. Саму конфигурацию контейнера надо развернуть в одну портянку, вставив все include, и вычистить все mount.auto. Их там есть.

С procfs та же хрень, но её и сами сможете победить аналогичным образом. Кстати, у неё имеются годные опции для монтирования.

И никогда ничего не запускайте из-под рута. Даже в непривилегированном контейнере.

Tags:
Total votes 5: ↑5 and ↓0+5
Comments1

Articles