完成pivot root后如何将外部路径bind mount到对应环境中
结论
可以在进程完成pivot root后,从根命名空间向该进程的独立mount命名空间内bind mount路径,具体操作步骤如下:
操作步骤
- 确认当前操作的shell拥有
CAP_SYS_ADMIN权限,这是跨mount命名空间执行挂载操作的必要前提。 - 使用
nsenter工具进入目标进程2909的mount命名空间,执行命令:
参数说明:nsenter -t 2909 -m /bin/sh-t指定目标进程PID,-m表示进入目标进程的mount命名空间,进入后执行的所有挂载操作仅会在该命名空间内生效。 - 在进入命名空间后的shell中执行bind mount操作:
路径说明:mount --bind /proc/1/root/etc/xyz /etc/xyz/proc/1/root/etc/xyz对应根命名空间下的/etc/xyz源路径,右侧/etc/xyz是目标进程pivot root后可见的目标路径。
验证方法
操作完成后可在目标命名空间内执行grep /etc/xyz /proc/mounts确认挂载状态,也可直接读取目标路径下的文件与外部源文件对比,验证挂载是否成功。
注意事项
minijail默认会将mount命名空间的挂载传播属性设为私有,因此你在该命名空间内执行的挂载操作不会反向传播到外部根命名空间,不会影响全局系统环境。
内容的提问来源于stack exchange,提问作者noob
相关产品推荐
相关产品推荐

