我想在另一个网络命名空间中运行一个新进程(例如 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