在另一个命名空间中运行进程

在另一个命名空间中运行进程

我想在另一个网络命名空间中运行一个新进程(例如 xterm)。这可以这样做:

sudo ip netns exec otherns sudo -u $USER xterm

这个命令看起来有点复杂,涉及到运行一个sudo运行的命令ip,其中运行的命令sudo运行最后的xterm.

有没有更直接的方法在新的命名空间中运行进程?

我正在考虑编写一个自己的小型(SUID 或启用功能)二进制文件,该二进制文件可以切换命名空间、恢复权限和用户并运行命令,但不应该已经有一些标准工具可以做到这一点吗?

这将允许我简单地调用类似的东西:

runns otherns xterm

答案1

是否可以--setuid选择nsenter(1)来救你吗?如:

sudo nsenter --net=/run/netns/otherns --setuid 1000 --setguid 1000 xterm

相关内容