사용자 네임스페이스 내에서 마운트 "/"를 바인딩할 수 없는 이유는 무엇입니까?

사용자 네임스페이스 내에서 마운트 "/"를 바인딩할 수 없는 이유는 무엇입니까?

왜 이것이 작동하지 않습니까?

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

이것들은 잘 작동합니다:

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

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

답변1

차이점은 /어린이용 마운트가 있다는 것입니다. 사용자 네임스페이스 내에서는 상속된 마운트를 하위 마운트에서 분리하는 것이 허용되지 않습니다. 더 분명한 예는 귀하가 허용되지 않는다는 것입니다 umount /proc. 그렇지 않으면 갑자기 다른 마운트 아래에 숨겨진 파일에 대한 액세스 권한이 부여될 수 있습니다. 과부하는 때때로 안전 조치로 의도적으로 사용됩니다.

모든 하위 마운트를 유지하는 재귀 바인드 마운트를 만들 수 있습니다.

$ unshare -rm mount --rbind / /mnt

관련 정보