chroot内でユーザーの名前空間に入るのを防ぐルールは何ですか?

chroot内でユーザーの名前空間に入るのを防ぐルールは何ですか?
# rpm -q --whatprovides /usr/bin/unshare
util-linux-2.32-2.fc28.x86_64
# unshare -r
#

つまり、上部は成功し、下部は失敗します。どのようなルールでこのようなことが起こりますか?

# rpm -q --whatprovides /usr/sbin/chroot
coreutils-8.29-6.fc28.x86_64
# chroot fedora-27
# rpm -q --whatprovides /usr/bin/unshare
util-linux-2.30.2-1.fc27.x86_64
# strace unshare -r
...
unshare(CLONE_NEWUSER)      = -1 EPERM (Operation not permitted)

ベストアンサー1

https://serverfault.com/a/648637/133475

以下を使用できるプロセスが知られてい chrootますchroot。実際、これは許可されず、失敗します。unshare -rchrootchroot

共有解除:共有解除失敗:操作は許可されていません。

どちらが一致するのか 共有キャンセル(2) 文書:

EPRM(Linux 3.9以降)

CLONE_NEWUSERで指定バナー呼び出し元はchroot環境にあります(つまり、呼び出し元のルートディレクトリがマウントネームスペースのルートディレクトリと一致しません)。

おすすめ記事