Est-il prudent d'activer les espaces de noms d'utilisateurs dans CentOS 7.4 et comment le faire?

3

J'essaie d'utiliser Brave Browser sur ma machine CentOS, mais lorsque j'essaie de l'exécuter, le message d'erreur suivant s'affiche.

[19576: 19576: 0208 / 180128.818448: FATAL: zygote_host_impl_linux.cc (126)] Aucun bac à sable utilisable! Mettez à jour votre noyau ou consultez https://chromium.googlesource.com/chromium/src/+/master/docs/linux_suid_sandbox_development.md pour plus d'informations sur le développement avec le bac à sable SUID. Si vous voulez vivre dangereusement et que vous avez besoin d’une solution immédiate, essayez d’utiliser --no-sandbox. poisson: “./brave” terminé par le signal SIGABRT (Abort)

La page git du projet disait que je pouvais avoir une erreur à propos du sandboxing et suggérait une solution.

Voici ce qu'il dit:

REMARQUE: Si Brave ne démarre pas et affiche une erreur concernant le sandboxing, vous devrez peut-être activer les utilisateurs dans votre noyau. Courir avec le drapeau --no-sandbox n'est PAS recommandé!

Maintenant, j'ai trois questions principales:

1) Que font exactement les utilisateurs? J'ai essayé de lire la page de manuel sur les espaces de noms d'utilisateurs, mais les choses se sont un peu compliquées pour moi. J'apprécierais donc quelques explications.

2) Est-ce que je peux activer les utilisateurs, ou est-ce que cela peut causer des problèmes?

3) Si ça va, comment puis-je le faire? C'est la méthode que j'ai trouvée, mais je ne suis pas sûr que ce soit la meilleure façon de le faire.

https://luppeng.wordpress.com/2016/07/08/user-namespaces-with-cent-os-7-rhel/

Abdelrahman Said
la source

Réponses:

6

Namespaces est une fonctionnalité du noyau utilisée par des conteneurs tels que LXC ou docker. Vous avez plusieurs types, espaces de noms PID, espaces de noms d'utilisateurs, ... Et vous avez raison, c'est assez compliqué au début. Je trouve que cet ancien article de blog explique son utilité pour les conteneurs: https://rhelblog.redhat.com/2015/07/07/whats-next-for-containers-user-namespaces/

Alors, pourquoi voudrais-je faire cela? Cela est particulièrement utile pour fournir un accès root à l’intérieur d’un conteneur. Imaginons que l'utilisateur root (uid 0) du conteneur A mappe sur l'uid 1000 et que la racine du conteneur B mappe sur l'utilisateur id 2000 en dehors du conteneur. Semblable au mappage de port réseau, cela permet à l'administrateur de donner à l'utilisateur une uid 0 (racine) dans le conteneur sans lui donner son uid 0 sur le système sous-jacent. Il permet également à un utilisateur d'ajouter / supprimer librement des utilisateurs à l'intérieur du conteneur.

Sous RHEL 7.4, le noyau devrait être inclus mais désactivé par configuration (le nombre d'espaces de nom disponibles est défini par défaut sur zéro). Il suffit d'exécuter:

echo 10000 > /proc/sys/user/max_user_namespaces
Hotte
la source
Il doit y avoir plus d'espaces de noms d'utilisateur que feindre uid 0 dans des conteneurs, parce que cela peut être fait avec Proot tout en ayant 0 à /proc/sys/user/max_user_namespacestravers proot -0.
BlackShift
@BlackShift, PRoot s'exécute en tant qu'utilisateur normal et simule l'ID racine pour satisfaire les programmes existants qui vérifient la sécurité de l'ID. github.com/proot-me/PRoot/commit/… Docker s'exécute en tant que root, mais doit être mappé sur un utilisateur hôte pour satisfaire les administrateurs de l'hôte qui ne souhaitent pas traiter les fichiers créés par root dans les volumes montés.
anguille ghEEz