1.1 KiB
1.1 KiB
Exercice : comparaison de namespace
Les namespaces d'un programme sont exposés sous forme de liens symboliques
dans le répertoire /proc/<PID>/ns/
.
Deux programmes qui partagent un même namespace auront un lien vers la même structure de données.
Écrivons un script ou un programme, cmpns
, permettant de déterminer si deux
programmes s'exécutent dans les mêmes namespaces.
Exemples
```
42sh$ ./cmpns $(pgrep influxdb) $(pgrep init)
- cgroup: differ
- ipc: differ
- mnt: differ
- net: differ
- pid: differ
- user: same
- uts: same
```
```
42sh$ ./cmpns $(pgrep init) self
- cgroup: same
- ipc: same
- mnt: same
- net: same
- pid: same
- user: same
- uts: same
```
Ici, self
fait référence au processus actuellement exécuté (comme il existe
un dossier /proc/self/
, vous n'avez pas besoin de gérer de cas particulier
pour ça !).
Et pourquoi pas :
```
42sh# unshare -m ./cmpns $$ self
- cgroup: same
- ipc: same
- mnt: differ
- net: same
- pid: same
- user: same
- uts: same
```