Perché non riesco a eseguire il bind mount "/" all'interno di uno spazio dei nomi utente?


13

Perché non funziona?

$ unshare -rm mount --bind / /mnt
mount: /mnt: wrong fs type, bad option, bad superblock on /, missing codepage or helper program, or other error.

Questi funzionano bene:

$ unshare -rm mount --bind /tmp /mnt
$ unshare -rm mount --bind /root /mnt
$

$ uname -r  # Linux kernel version
4.17.3-200.fc28.x86_64

Risposte:


16

La differenza è che /ha supporti per bambini. All'interno di uno spazio dei nomi utente, non è consentito separare i montaggi ereditati dai loro montaggi figlio. Un esempio più ovvio è che non ti è permesso umount /proc. Altrimenti, potrebbe improvvisamente concederti l'accesso ai file che erano nascosti sotto altri supporti. Gli overmount vengono talvolta utilizzati deliberatamente come misura di sicurezza.

È possibile creare invece un mount bors ricorsivo, che conserva tutti i sub-mount:

$ unshare -rm mount --rbind / /mnt
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.