Mengapa saya tidak dapat mengikat "/" di dalam namespace pengguna?


13

Mengapa ini tidak berhasil?

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

Ini berfungsi ok:

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

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

Jawaban:


16

Perbedaannya adalah bahwa /memiliki tunggangan anak. Di dalam namespace pengguna, Anda tidak diizinkan untuk memisahkan tatanan bawaan dari tunggangan anak mereka. Contoh yang lebih jelas adalah bahwa Anda tidak diizinkan melakukannya umount /proc. Jika tidak, itu bisa tiba-tiba memberi Anda akses ke file yang disembunyikan di bawah mount lain. Overmount terkadang digunakan dengan sengaja sebagai langkah pengamanan.

Anda diizinkan membuat bind mount rekursif sebagai gantinya, yang mempertahankan semua sub-mount:

$ unshare -rm mount --rbind / /mnt
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.