Por que não consigo ligar / montar “/” dentro de um espaço para nome de usuário?


13

Por que isso não funciona?

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

Estes funcionam bem:

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

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

Respostas:


16

A diferença é que /tem montagens filho. Dentro de um espaço para nome de usuário, você não tem permissão para separar montagens herdadas das montagens filhas. Um exemplo mais óbvio é que você não tem permissão umount /proc. Caso contrário, poderia de repente conceder acesso a arquivos ocultos embaixo de outras montagens. Às vezes, sobreposições são usadas deliberadamente como uma medida de segurança.

Você tem permissão para criar uma montagem de ligação recursiva, que preserva todas as submontagens:

$ unshare -rm mount --rbind / /mnt
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.