GNU/Linux >> Linux Esercitazione >  >> Linux

Perché il mio bind mount è visibile al di fuori del suo spazio dei nomi di mount?

Se sei su una distribuzione basata su systemd con util-linux versione inferiore alla 2.27, vedrai questo comportamento non intuitivo. Questo perché CLONE_NEWNS propaga flag come shared a seconda di un'impostazione nel kernel. Questa impostazione è normalmente private , ma systemd lo modifica in shared . A partire dal util-linux 2.27, è stata apportata una patch che modifica il comportamento predefinito del unshare comando per usare private come comportamento di propagazione predefinito per essere più intuitivo.

Soluzione

Se sei su un sistema systemd con util-linux prima della versione 2.27, è necessario rimontare il filesystem root dopo eseguendo unshare comando:

# unshare --mount -- /bin/bash
# mount --make-private -o remount /

Se sei su un sistema systemd con util-linux versione 2.27 o successiva, dovrebbe funzionare come previsto nell'esempio che hai fornito nella tua domanda, testualmente, senza la necessità di rimontare. In caso contrario, passa --propagation private al unshare comando per rendere privata la propagazione dello spazio dei nomi di montaggio.


Linux
  1. Solo Root può montare, perché?

  2. Bind montare un utente SFTP dopo aver usato chroot

  3. Associa i montaggi in Linux

  4. Perché stdbuf non ha alcun effetto su Python?

  5. Come montare la partizione con spazi nel percorso

Costruire un contenitore a mano usando gli spazi dei nomi:lo spazio dei nomi di montaggio

Perché lanciamo sockaddr_in a sockaddr quando chiamiamo bind()?

Elenca solo i supporti bind

Perché il mio file system è montato in sola lettura?

Visualizza/manipola gli spazi dei nomi di montaggio in Linux

Perché Linux è simile a Unix se il suo kernel è monolitico?