我正在使用unshare
执行诸如将本地绑定安装到某个进程而不需要 root 访问权限之类的操作,例如:
unshare -mr bash mount --bind a b
Run Code Online (Sandbox Code Playgroud)
(是的,这看起来有点愚蠢;在我的实际用例中;unshare
正在运行一个执行绑定安装的 bash 脚本。我没有在这里这样做,所以它是一个较小的例子。)
但是,如果我尝试循环安装,它会失败:
ryan@DevPC-LX ~/stuff/util-linux master $ unshare -mr mount -o loop x.img a
mount: no permission to look at /dev/loop<N>
Run Code Online (Sandbox Code Playgroud)
:/
我尝试使用mknod
创建一个假循环设备(需要非 root 用户无法使用的权限)、手动运行losetup
(仍然需要 root 权限)以及一堆其他不起作用的东西。
当然,我可以这样做chown myuser /dev/loop*
,但这似乎可能成为一个主要的安全问题。
此外,guestmount
对于我的用例来说太慢了,并且fuseext2
有关于写入模式下可能丢失数据的警告(而且它也太慢了)。
有没有办法做到……这个?根本?