gpt4 book ai didi

linux - 使用包含空变量的 -t 传递的 ssh 远程命令执行正在切换用户并且不打印请求的远程命令输出

转载 作者:行者123 更新时间:2023-12-04 19:39:54 28 4
gpt4 key购买 nike

在我们的环境中,我们使用标准 ssh 命令进行远程执行,当“-t”选项以 emtpy 值传递时,ssh 命令会中断。下面是一个例子

[root@pcrfclient01 ~]# value=
[root@pcrfclient01 ~]# echo $value

[root@pcrfclient01 ~]# /usr/bin/ssh -k moduser@vm01 -t "$value" /usr/bin/svn info http://vm01/repos
[moduser@pcrfclient01 ~]$
如上所示,ssh 命令不是打印输出,而是简单地切换为另一个用户,这在我们的第二个环境中不是这种情况,下面是我们第二个(工作)环境的输出
[root@pcrfclient01 ~]# value=
[root@pcrfclient01 ~]# echo $value

[root@pcrfclient01 ~]# /usr/bin/ssh -k moduser@vm01 -t "$value" /usr/bin/svn info http://vm01/repos
Path: repos
URL: http://vm01/repos
Relative URL: ^/
Repository Root: http://vm01/repos
Repository UUID: f5951489-d042-471b-824d-2a6a8692d78f
Revision: 412
Node Kind: directory
Last Changed Author: moduser-svn
Last Changed Rev: 412
Last Changed Date: 2021-07-21 12:50:48 +0000 (Wed, 21 Jul 2021)

这个 $value 变量是我们脚本的一部分,并且将始终为空,并且在我们的许多脚本中使用它,因此我想保留这些更改并确保我的有问题的环境与我的稳定环境以相同的方式工作。请让我知道如何解决此问题。
谢谢

最佳答案

我能够解决这个问题,问题是我的团队最近更新了/etc/passwd 中 moduser 的 shell 信息,并错误地将其更改为 sudosh

cat /etc/passwd | grep -i moduser
moduser:x:500:500::/home/moduser:/bin/sudosh
所以我把它改回/bin/bash 并发布 ssh 命令正在接受空值并且能够成功打印远程命令输出
cat /etc/passwd | grep -i moduser
moduser:x:500:500::/home/moduser:/bin/bash
但是我仍然不知道为什么为我的用户使用 sudosh 会让我切换用户而不是打印远程命令的输出。

关于linux - 使用包含空变量的 -t 传递的 ssh 远程命令执行正在切换用户并且不打印请求的远程命令输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68560302/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com