Tuto 4 ready
This commit is contained in:
parent
fb994050db
commit
c960136430
18 changed files with 536 additions and 340 deletions
|
|
@ -1,9 +1,9 @@
|
|||
\newpage
|
||||
|
||||
Le *namespace* `user` {#user-ns}
|
||||
=====================
|
||||
---------------------
|
||||
|
||||
## Introduction
|
||||
### Introduction
|
||||
|
||||
L'espace de noms `user` est plutôt pratique car il permet de virtualiser la
|
||||
liste et les droits des utilisateurs.
|
||||
|
|
@ -15,44 +15,44 @@ avoir besoin à l'intérieur de cet espace de noms, sans que cela ne réduise la
|
|||
sécurité des composants à l'extérieur de cet espace.
|
||||
|
||||
|
||||
## Comportement vis-à-vis des autres *namespaces*
|
||||
### Comportement vis-à-vis des autres *namespaces*
|
||||
|
||||
Alors qu'il est normalement nécessaire d'avoir des privilèges pour créer de
|
||||
nouveaux espaces de noms, en commençant par demander un *namespace*
|
||||
utilisateurs, on obtient les privilèges requis pour créer tous les autres types
|
||||
utilisateur, on obtient les privilèges requis pour créer tous les autres types
|
||||
de *namespaces*.
|
||||
|
||||
Grâce à cette technique, il est possible de lancer des conteneurs en tant que
|
||||
simple utilisateur ; le projet [Singularity](https://sylabs.io/) repose
|
||||
entièrement sur cela.
|
||||
en grande partie sur cela.
|
||||
|
||||
|
||||
## Correspondance des utilisateurs et des groupes
|
||||
### Correspondance des utilisateurs et des groupes
|
||||
|
||||
Comme pour les autres espaces de noms, le *namespace* `user` permet de ne
|
||||
garder dans le nouvel espace, que les utilisateurs et les groupes utiles au
|
||||
processus, en les renumérotant au passage si besoin.
|
||||
|
||||
|
||||
### L'utilisateur -2 : *nobody*
|
||||
#### L'utilisateur -2 : *nobody*\
|
||||
|
||||
Lorsque l'on arrive dans un nouvel espace, aucun utilisateur ni groupe n'est
|
||||
défini. Dans cette situation, tous les identifiants d'utilisateur et de groupe,
|
||||
renvoyés par le noyau sont à -2 ; valeur qui correspond par convention à
|
||||
l'utilisateur *nobody* et au groupe *nogroup*.
|
||||
|
||||
-1 étant réservé pour indiqué une erreur dans le retour d'une commande, ou la
|
||||
non-modification d'un paramètres passé en argument d'une fonction.
|
||||
-1 étant réservé pour indiquer une erreur dans le retour d'une commande, ou la
|
||||
non-modification d'un paramètre passé en argument d'une fonction.
|
||||
|
||||
|
||||
### `uid_map` et `gid_map`
|
||||
|
||||
#### `uid_map`
|
||||
#### `uid_map` et `gid_map` \
|
||||
|
||||
Pour établir la correspondance, une fois que l'on a créé le nouveau
|
||||
*namespace*, ces deux fichiers, accessibles dans `/proc/self/`, peuvent être
|
||||
écrits une fois.
|
||||
|
||||
##### `uid_map`\
|
||||
|
||||
Sur chaque ligne, on doit indiquer :
|
||||
|
||||
- L'identifiant marquant le début de la plage d'utilisateurs, pour le processus
|
||||
|
|
@ -72,8 +72,8 @@ Par exemple, le *namespace* `user` initial défini la correspondance suivante :
|
|||
</div>
|
||||
|
||||
Cela signifie que les utilisateurs dont l'identifiant court de 0 à `MAX_INT -
|
||||
2` inclu, dans cet espace de noms, correspondent aux utilisateurs allant de 0 à
|
||||
`MAX_INT - 1` inclu, pour le processus affichant ce fichier.
|
||||
2` inclus, dans cet espace de noms, correspondent aux utilisateurs allant de 0 à
|
||||
`MAX_INT - 1` inclus, pour le processus affichant ce fichier.
|
||||
|
||||
Lorsque l'on crée un *namespace* `user`, généralement, la correspondance vaut :
|
||||
|
||||
|
|
@ -89,13 +89,13 @@ l'utilisateur root, dans le conteneur équivaut à l'utilisateur 1000 hors de
|
|||
l'espace de noms.
|
||||
|
||||
|
||||
#### `gid_map`
|
||||
##### `gid_map`\
|
||||
|
||||
Le principe est identique pour ce fichier, mais agit sur les correspondances
|
||||
des groupes au lieu des utilisateurs.
|
||||
|
||||
|
||||
## Utilisation de l'espace de noms
|
||||
### Utilisation de l'espace de noms
|
||||
|
||||
<div lang="en-US">
|
||||
```bash
|
||||
|
|
@ -110,7 +110,7 @@ jeu. L'idée étant que l'on a été désigné root dans son conteneur, on devra
|
|||
pouvoir y faire ce que l'on veut, tant que l'on n'agit pas en dehors.
|
||||
|
||||
|
||||
## Aller plus loin {-}
|
||||
### Aller plus loin {-}
|
||||
|
||||
N'hésitez pas à jeter un œil à la page du manuel consacré à ce *namespace* :
|
||||
N'hésitez pas à jeter un œil à la page du manuel consacrée à ce *namespace* :
|
||||
`user_namespaces(7)`.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue