GNU/Linux >> Tutoriels Linux >  >> Linux

Pourquoi mon montage lié est-il visible en dehors de son espace de noms de montage ?

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é.


Linux
  1. Une monture liée ?

  2. Seule la racine peut monter, pourquoi ?

  3. Pourquoi transtypons-nous sockaddr_in en sockaddr lors de l'appel de bind() ?

  4. Pourquoi stdbuf n'a aucun effet sur Python ?

  5. Pourquoi mon système de fichiers est-il monté en lecture seule ?

Construire un conteneur à la main à l'aide d'espaces de noms :l'espace de noms de montage

Pour afficher le chemin source du montage lié pour le montage après la v2.25.2

Répertorier uniquement les montages liés

Pourquoi le montage ne respecte-t-il pas l'option de lecture seule pour les montages liés ?

Pourquoi Linux ressemble-t-il à Unix si son noyau est monolithique ?

Pourquoi le montage lié d'un fichier après la suppression du lien échoue-t-il avec ENOENT ?