我有一个bash脚本:
my-script
内容:
#!/usr/bin/env bash
# does 'some thing'
sudo /usr/bin/nsenter --setuid 1000 --setgid 1000 --net=/var/run/netns/ns-a -- socat file:$(tty),raw,echo=0 tcp:10.10.10.1:2222
# does 'another thing'
从终端以交互方式运行此脚本停止,并为用户提供可交互的远程shell。
用例需要有一个脚本,该脚本:
我想要做的是在批处理文件(管道输入)和交互中使用这个脚本。
以下是我的困惑:
my-script <<EOCMDS
echo 1
echo 2
EOCMDS
2020/12/13 21:28:59 socat[28032] E exactly 2 addresses required (there are 4); use option "-h" for help
感谢你可能想到的任何解决方案。
这不是一个关于设置远程shell的问题。为了避免疑问,远程服务器已经安装和侦听,准备在连接上提供(bash) shell。这个问题只涉及客户端。为了进一步消除疑问,虽然与此问题无关,但实际上远程服务器并不是网络命名空间,而是本地客户端。
发布于 2020-12-13 13:10:04
对于反向外壳:
sudo /usr/bin/nsenter --setuid 1000 --setgid 1000 --net=/var/run/netns/ns-a -- socat TCP4:10.10.10.1:2222 EXEC:/bin/bash
然后在后台执行脚本:
./my-script &
在另一边:
socat -d TCP4-LISTEN:2222 STDOUT
<commands to execute>
https://unix.stackexchange.com/questions/624251
复制相似问题