¿Por qué no puedo enlazar-montar "/" dentro de un espacio de nombres de usuario?


13

¿Por qué esto no funciona?

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

Estos funcionan bien:

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

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

Respuestas:


16

La diferencia es que /tiene monturas infantiles. Dentro de un espacio de nombres de usuario, no está permitido separar los montajes heredados de sus montajes secundarios. Un ejemplo más obvio es que no puedes hacerlo umount /proc. De lo contrario, de repente podría otorgarle acceso a archivos que estaban ocultos debajo de otras monturas. Las sobremontajes a veces se usan deliberadamente como medida de seguridad.

En su lugar, puede crear un montaje de enlace recursivo, que conserva todos los submontajes:

$ unshare -rm mount --rbind / /mnt
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.