Как проверить, поддерживаются ли пространства имен пользователей Linux текущим ядром ОС

После некоторого чтения я обнаружил, что пространства имен пользователей Linux обычно поддерживаются в версиях Linux>= 3.8. Однако существует вероятность того, что пользовательские пространства имен отключены в данной ОС, что делает проверку версий ядра ненадежной. Есть ли надежный способ проверить, поддерживает ли используемая мной текущая ОС пространства имен пользователей и доступна ли она для использования?

3 ответа

Вы можете проверить, если ваш текущий процесс /proc/[pid]/ns/ В каталоге есть файл с именем user:

ls /proc/self/ns

Есть два места, где вы можете проверить, поддерживает ли ваше ядро ​​пользовательские пространства имен:

  1. /boot/config-*, (выясните, какой из них вы используете на самом деле uname -a)
  2. /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
Другие вопросы по тегам