Activer les espaces de noms utilisateur dans le noyau Debian

28

J'essaie de comprendre comment activer la capacité des espaces de noms d'utilisateurs dans mon noyau (je pense que CAP_SYS_USER_NS). J'utilise Debian Stretch, le noyau 4.6.0-1-amd64.

Mon hypothèse est qu'il existe un moyen d'activer les espaces de noms des utilisateurs et de recompiler le noyau. Après quelques heures de recherche, je peux trouver un article sur cette opération dans Ubuntu ( https://blog.tutum.co/2013/12/14/enabling-the-user-namespace-in-ubuntu-13-10-saucy/ ) mais pas Debian (le problème peut être que je suis sur la mauvaise voie et donc mes recherches sont hors base).

Mon jeu final est de les activer afin de suivre Docker et Google sandboxing qui nécessitent apparemment que les espaces de noms des utilisateurs soient activés dans le noyau (par exemple, mes conteneurs Chrome ne fonctionnent plus).

Senrabdet
la source
1
Voir aussi la même question: unix.stackexchange.com/q/303213/4319
imz - Ivan Zakharyaschev

Réponses:

38

Sur Debian, les utilisateurs sont compilés mais désactivés par défaut. Il y a un patch spécifique à Debian au noyau qui ajoute ce bouton sysctl: kernel.unprivileged_userns_clone

Vous devez donc ajouter une nouvelle entrée /etc/sysctl.det la définir sur 1

Manuellement, ce serait: echo 1 > /proc/sys/kernel/unprivileged_userns_clone(juste pour l'activer jusqu'au redémarrage)

pour une solution permanente:

echo 'kernel.unprivileged_userns_clone=1' > /etc/sysctl.d/00-local-userns.conf
service procps restart

Il est possible qu'il y ait un paramètre d'option de démarrage équivalent, je ne sais tout simplement pas

UN B
la source
1
Cela fonctionne toujours sur Stretch, noyau 4.9.0-1-amd64 #1 SMP Debian 4.9.6-3 (2017-01-28) x86_64 GNU/Linux.
Reid
1
Y a-t-il une raison pour laquelle il est désactivé par défaut dans Debian?
Melroy
2
Historiquement, la sécurité de l'espace de noms des utilisateurs était incertaine. par exemple: lwn.net/Articles/673597 . Si un utilisateur, en tant que root dans son propre espace de noms, peut inciter le noyau à autoriser une opération sur le véritable hôte, il y a une élévation de privilèges. Les espaces de noms non-utilisateurs habituels nécessitent une autorisation racine (donc admin) explicite et exécutent donc ce que l'administrateur a choisi: c'est un risque connu. Un mécanisme ultérieur a été ajouté dans le noyau vanilla: user.max_user_namespaces. Lorsqu'il est défini sur 0, les espaces de noms d'utilisateurs sont désactivés. Le correctif Debian (en fait d'Ubuntu) est toujours là, même s'il est probablement obsolète. Peut-être pour des raisons de compatibilité
AB
1
Le noyau 4.18.3 n'a pas encore été publié sur Debian, donc votre noyau n'est pas un noyau de test Debian. Vous pouvez ignorer complètement ce paramètre (jusqu'à ce que vous installiez un noyau réel à partir de Debian). Regardez également mon commentaire précédent sur user.max_user_namespaces
AB
3
Ou tout simplement: sudo sysctl -w kernel.unprivileged_userns_clone=1.
Skippy le Grand Gourou le