GNU/Linux >> Tutoriels Linux >  >> Linux

Linux – Noyau :Prise en charge des espaces de noms ?

Je me demande ce que signifie exactement la fonctionnalité "Prise en charge des espaces de noms" dans le noyau Linux. J'utilise le noyau 3.11.1 (le noyau stable le plus récent à l'heure actuelle).

Si je décide de le désactiver, est-ce que je remarquerai un changement sur mon système ?

Et au cas où quelqu'un déciderait d'utiliser des espaces de noms, suffit-il de simplement compiler NAMESPACES=Y dans le noyau, ou a-t-il également besoin d'outils en espace utilisateur ?

Réponse acceptée :

En un mot, les espaces de noms fournissent un moyen de construire un système Linux virtuel à l'intérieur d'un système Linux plus grand. Ceci est différent de l'exécution d'une machine virtuelle qui s'exécute en tant que processus non privilégié :la machine virtuelle apparaît comme un processus unique dans l'hôte, tandis que les processus exécutés à l'intérieur d'un espace de noms s'exécutent toujours sur le système hôte.

Un système virtuel s'exécutant à l'intérieur d'un système plus grand est appelé un conteneur. L'idée d'un conteneur est que les processus exécutés à l'intérieur du conteneur croient qu'ils sont les seuls processus du système. En particulier, l'utilisateur root à l'intérieur du conteneur n'a pas de privilèges root à l'extérieur du conteneur (notez que cela n'est vrai que dans les versions suffisamment récentes du noyau).

Les espaces de noms virtualisent une fonctionnalité à la fois. Voici quelques exemples de types d'espaces de noms :

  • Espaces de noms d'utilisateur : cela permet aux processus de se comporter comme s'ils s'exécutaient en tant qu'utilisateurs différents à l'intérieur et à l'extérieur de l'espace de noms. En particulier, les processus s'exécutant sous l'UID 0 à l'intérieur de l'espace de noms ont des privilèges de superutilisateur uniquement en ce qui concerne les processus s'exécutant dans le même espace de noms.
    Depuis le noyau Linux 3.8, les utilisateurs non privilégiés peuvent créer des espaces de noms d'utilisateurs. Cela permet à un utilisateur ordinaire d'utiliser des fonctionnalités réservées à root (telles que la modification des tables de routage ou la configuration des fonctionnalités).
  • Espaces de noms PID – les processus à l'intérieur d'un espace de noms PID ne peuvent pas tuer ou suivre les processus en dehors de cet espace de noms.
  • Modifier les espaces de noms : cela permet aux processus d'avoir leur propre vue du système de fichiers. Cette vue peut être une vue partielle, permettant de masquer certaines parties du système de fichiers et de recomposer des parties afin que les arborescences de répertoires apparaissent à différents endroits. Les espaces de noms de montage généralisent le chroot de fonctionnalité Unix traditionnel, qui permet de limiter les processus à une sous-arborescence particulière.
  • Espaces de noms réseau :permettent de séparer les ressources réseau (périphériques réseau) et améliorent ainsi l'isolement des processus.

Les espaces de noms s'appuient sur le noyau pour assurer l'isolation entre les espaces de noms. C'est assez compliqué à faire correctement, il peut donc y avoir encore des bogues de sécurité qui traînent. Le risque de bogues de sécurité serait la principale raison de ne pas activer la fonctionnalité. Une autre raison de ne pas l'activer serait lorsque vous créez un petit noyau pour un périphérique intégré. Dans un noyau à usage général que vous installez sur un serveur ou un poste de travail typique, les espaces de noms doivent être activés, comme toute autre fonctionnalité mature du noyau.

En relation :Linux – Pouvons-nous obtenir des informations sur le compilateur à partir d'un binaire elf ?

Il existe encore peu d'applications qui utilisent des espaces de noms. En voici quelques-unes :

  • LXC est bien établi. Il s'appuie sur les cgroups pour fournir des conteneurs.
  • virt-sandbox est un projet de sandboxing plus récent.
  • Les versions récentes de Chromium utilisent également des espaces de noms pour le sandboxing, le cas échéant.
  • Le framework uWSGI pour les applications en cluster utilise des espaces de noms pour améliorer le sandboxing.

Voir la série d'articles LWN par Michael Kerrisk pour plus d'informations.


Linux
  1. Le cycle de vie des tests du noyau Linux

  2. Espaces de noms Linux

  3. Installer le noyau Linux 4.12 dans openSUSE

  4. Linux – Un noyau corrompu sous Linux ?

  5. Linux – Les différents noyaux Linux/unix sont-ils interchangeables ?

Commande sysctl sous Linux

Que faire en cas de panique du noyau Linux

Mettre à niveau le noyau Linux de CentOS 8

Guide complet de journalisation Linux

Linux - Schéma du noyau Linux Vs. Outils de performances ?

Lancement du noyau Linux 5.0, nouvelles fonctionnalités et améliorations !