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 та же хрень, но её и сами сможете победить аналогичным образом. Кстати, у неё имеются годные опции для монтирования.
И никогда ничего не запускайте из-под рута. Даже в непривилегированном контейнере.