我正在尝试将我的用户更改为不需要密码即可运行 ssh 指令的用户,然后正是这样做,运行 ssh 指令。我现在拥有的是:
sudo su - testUser ssh testUser@server2 'cat /home/randomUser/hola.txt'
但我得到了答案:
/usr/bin/ssh: /usr/bin/ssh: cannot execute binary file
如果我将指令放在一个名为 testit 的不同文件中,如下所示:
ssh testUser@server2
cat /home/randomUser/hola.txt
然后我跑:
sudo su - testUser < testit
有效!但我需要使用单行指令,有人知道我应该更改什么才能使其有效吗?
最佳答案
sudo su - testUser
你为什么不使用 sudo -u testUser
因为它应该被使用?
但无论如何,您正在使用的工具的手册页是一个好的开始。对于 sudo
:
sudo [...] [command]
这看起来不错,适合您的示例。
对于su
:
su [options] [username]
Ola ... su
没有任何参数 command
,除非你也提供 -c
开关,它也写在手册页。而且是[option]
,所以它应该在[username]
之前!像这样的东西应该可以完成这项工作:
sudo su -l -c "ssh testUser@server2 'cat /home/randomUser/hola.txt'" testUser
但正如我已经提到的,仅使用 sudo
可以显着简化它:
sudo -i -u testUser "ssh testUser@server2 'cat /home/randomUser/hola.txt'"
关于linux - 更改用户并在 1 行中运行 ssh 指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43328561/