Après deux articles [1] [2] assez fastidieux, mais néanmoins instructifs sur le fonctionnement interne des namespaces au sein du noyau de Linux, nous revenons en espace utilisateur pour une revue détaillée de chaque namespace. Cet opus se consacre au namespace user.
Cet article se consacre au namespace user (user_ns). Il a donné du fil à retordre aux développeurs du noyau Linux, car il prend à sa charge une grande partie de la sécurité du système. Ce namespace isole les identifiants d’utilisateurs et de groupes ainsi que d’autres attributs relatifs à la sécurité comme le répertoire racine, les capacités (« capabilities » en anglais). Il est à la base des conteneurs LXC non privilégiés.
Une entrée est dédiée à ce namespace dans la documentation : man 7 user_namespaces.
Le code de cet article est disponible sur http://www.rkoucha.fr/tech_corner/linux_namespaces/linux_namespaces.tgz.
1. User_ns propriétaire
On a pu voir, lors de l’étude des appels système, que l’opération NS_GET_USERNS du service ioctl() retourne un descripteur sur le fichier associé au user_ns auquel appartient un namespace. L’appartenance d’un namespace à un user_ns est déterminée au moment de sa création lors de...
