Si vous êtes sur une distribution basée sur systemd avec un util-linux
version inférieure à 2.27, vous verrez ce comportement peu intuitif. C'est parce que CLONE_NEWNS
propage des drapeaux tels que shared
en fonction d'un paramètre dans le noyau. Ce paramètre est normalement private
, mais systemd change cela en shared
. Depuis util-linux
2.27, un patch a été fait qui change le comportement par défaut du unshare
commande pour utiliser private
comme comportement de propagation par défaut pour être plus intuitif.
Solution
Si vous êtes sur un système systemd avec util-linux
avant la version 2.27, vous devez remonter le système de fichiers racine après exécutant le unshare
commande :
# unshare --mount -- /bin/bash
# mount --make-private -o remount /
Si vous êtes sur un système systemd avec util-linux
version 2.27 ou ultérieure, cela devrait fonctionner comme prévu dans l'exemple que vous avez donné dans votre question, textuellement, sans qu'il soit nécessaire de remonter. Sinon, passez --propagation private
au unshare
commande pour forcer la propagation de l'espace de noms de montage à être privé.