Как проверить, поддерживаются ли пространства имен пользователей Linux текущим ядром ОС
После некоторого чтения я обнаружил, что пространства имен пользователей Linux обычно поддерживаются в версиях Linux>= 3.8. Однако существует вероятность того, что пользовательские пространства имен отключены в данной ОС, что делает проверку версий ядра ненадежной. Есть ли надежный способ проверить, поддерживает ли используемая мной текущая ОС пространства имен пользователей и доступна ли она для использования?
3 ответа
Вы можете проверить, если ваш текущий процесс /proc/[pid]/ns/
В каталоге есть файл с именем user
:
ls /proc/self/ns
Есть два места, где вы можете проверить, поддерживает ли ваше ядро пользовательские пространства имен:
/boot/config-*
, (выясните, какой из них вы используете на самом делеuname -a
)/proc/config.gz
,
В обоих файлах ищите CONFIG_USER_NS
, Если это читает CONFIG_USER_NS=y
ты золотой Если нет, то вы собираетесь скомпилировать новое ядро.
Если вы используете bash (вы можете проверить, запустив echo $0
, ожидаемый результат -bash
). Затем вы можете запустить следующий вкладыш:
if [[ `sudo cat /boot/config-$(uname -a | awk '{print $3}') |grep '^CONFIG_USER_NS'` == "CONFIG_USER_NS=y" ]]; then echo "You have support for User Namespaces"; else echo "Sorry, you don't have support for User Namespaces"; fi