反向 shell 时如何将环境变量作为参数值传递给容器

How to pass env variable as parameter value when reverse shell to container

我一直在搜索,但找不到问题的答案。

我想做的是连接到 openshift 容器的远程 shell 并创建数据库转储,如果我手动输入用户名、密码和数据库名称(实际值),它就可以工作。

我希望执行此命令来访问环境变量:(此命令稍后将成为更大脚本的一部分)

 oc rsh mon-rs-nr-0 mongodump --host=rs/mon-rs-nr-0.mon-rs-nr.xxx.svc.cluster.local,mon-rs-nr-1.xxx.svc.cluster.local,mon-rs-nr-2.mon-rs-nr.xxx.svc.cluster.local --username=$MONGODB_USER --password=$MONGODB_PASSWORD --authenticationDatabase=$MONGODB_DATABASE

但它不起作用,我还尝试了不同版本的 echo 等(env vars 没有替换为它们的值)。环境变量存在于容器内。

当我尝试时

oc rsh mon-rs-nr-0 echo "$MONGODB_PASSWORD"

我收到了

$MONGODB_PASSWORD

但是当我第一次连接到容器然后执行命令时:

C:\Users\xxxx\Desktop>oc rsh mon-rs-nr-0
$ echo "$MONGODB_PASSWORD"
mAYXXXXXXXXXXX

有效。但是我需要按照我在顶部介绍的方式使用它,有人知道解决方法吗?

感谢@msaw328 评论这里是解决方案:

C:\Users\xxx\Desktop>oc rsh mon-rs-nr-0  bash -c "mongodump --host=rs/mon-rs-nr-0.mon-rs-nr.xxx.svc.cluster.local,mon-rs-nr-1.mon-rs-nr.xxx.svc.cluster.local,mon-rs-nr-2.mon-rs-nr.xxx.svc.cluster.local --username=$MONGODB_USER --password=$MONGODB_PASSWORD --authenticationDatabase=$MONGODB_DATABASE"

输出:

Defaulted container "mongodb" out of: mongodb, mongodb-sidecar, mongodb-exporter

2021-08-20T11:01:12.268+0000    writing xxx.yyy to
2021-08-20T11:01:12.269+0000    writing xxx.ccc to
2021-08-20T11:01:12.269+0000    writing xxx.ddd to
2021-08-20T11:01:12.269+0000    writing xxx.eee to
2021-08-20T11:01:12.339+0000    done dumping xxx.eee (11 documents)
2021-08-20T11:01:12.339+0000    writing xxx.zzz to
2021-08-20T11:01:12.340+0000    done dumping xxx.ccc (24 documents)
2021-08-20T11:01:12.340+0000    writing xxx.bbb to
2021-08-20T11:01:12.340+0000    done dumping xxx.ddd (24 documents)
2021-08-20T11:01:12.340+0000    writing xxx.fff to
2021-08-20T11:01:12.436+0000    done dumping xxx.yyy (1000 documents)
2021-08-20T11:01:12.436+0000    writing xxx.ggg to
2021-08-20T11:01:12.436+0000    done dumping xxx.bbb (3 documents)
2021-08-20T11:01:12.437+0000    writing xxx.aaa to
2021-08-20T11:01:12.441+0000    done dumping xxx.fff (0 documents)
2021-08-20T11:01:12.441+0000    done dumping xxx.zzz (3 documents)
2021-08-20T11:01:12.447+0000    done dumping xxx.aaa(0 documents)
2021-08-20T11:01:12.449+0000    done dumping xxx.ggg (0 documents)