【发布时间】:2017-06-10 11:30:11
【问题描述】:
这似乎是 stackoverflow 上的一个热门问题,但似乎没有什么对我有用
我会先解释我的问题,然后再去尝试我尝试过的解决方案
我需要做的是从serverA 到ssh 到serverB。为此,我在服务器上设置了 rsa 加密,我可以成功 ssh 到 serverB
我用
ssh user@hostname
现在我想在serverB 上执行某些命令。第一个是切换到app用户。为此,我需要运行sudo su - app 命令,但我还想在同一行中提供密码,以便它不会再次提示输入密码。
所以我尝试先用密码直接在serverB上运行sudo su - app命令来测试它
我已经尝试了以下
echo "password" | sudo su - app
sudo -S <<< "password" su - app
echo "password" | sudo -S su - app
echo 'passowrd' | sudo 'su -c - app'
但是,以上解决方案都不适合我。
我能得到的最接近的是
echo "password" | script -c "sudo su - app"
它在哪里接受密码并显示给我
app@hostname [/app]
$
但是,当我运行命令whoami 时,它仍然显示user 而不是app。但是,当我直接运行sudo su - app 并提供传递然后运行whoami 它给了我app
我正在尝试使用 ssh 运行命令
ssh user@hostname -t 'echo "password" | script -c "sudo su - app"'
P.S. 用户 user 没有 root 访问权限,我也无法使用任何插件,因为我没有权限这样做
我的服务器是Redhat 6.2
我希望我能正确地解释它。寻找一些可以提供帮助的答案。
对不起,我的英语不好。感谢帮助。
【问题讨论】:
-
所以用户不在
sudousers组中? -
@МартинБее 不,不是
-
如果您没有root权限,我认为您将无法运行任何以
sudo开头的命令,如果可以,请尝试以app开头的身份登录ssh 命令。 -
@МартинБее 正如我所说,用户有权切换到应用程序用户。自从我尝试 sudo su - app 并输入密码后,它就可以工作了
-
@МартинБее 我也试过了,但问题是我没有应用程序用户的密码,因此我无法登录。如果可能的话,那真的很容易