# 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 -r
会向普通用户授予chroot
权限,因此如果在环境中允许这样做,则会存在安全风险chroot
。事实上,这是不允许的,并且会失败:取消共享:取消共享失败:不允许操作
哪个匹配 取消分享(2) 文档:
EPRM(从 Linux 3.9 开始)
CLONE_NEWUSER指定于旗帜并且调用者处于chroot环境中(即调用者的根目录与其所在的挂载命名空间的根目录不匹配)。