Linux 更改用户并在1行中运行ssh指令
我正在尝试将我的用户更改为一个不需要密码就可以运行ssh指令的用户,然后完全这样做,运行ssh指令。我现在得到的是:Linux 更改用户并在1行中运行ssh指令,linux,ssh,Linux,Ssh,我正在尝试将我的用户更改为一个不需要密码就可以运行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 c
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 su - testUser
为什么不按预期使用sudo-u testUser呢
但是无论如何,你正在使用的工具的手册页是一个好的开始。对于sudo
:
sudo [...] [command]
这看起来不错,符合您的示例
对于su
:
su [options] [username]
奥拉su
没有任何参数command
,除非您还提供了-c
开关,该开关也写在手册页中。而且它是[选项]
,所以它应该在[用户名]
前面!像这样的东西应该可以完成这项工作:
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'"
为什么不按预期使用sudo-u testUser呢
但是无论如何,你正在使用的工具的手册页是一个好的开始。对于sudo
:
sudo [...] [command]
这看起来不错,符合您的示例
对于su
:
su [options] [username]
奥拉su
没有任何参数command
,除非您还提供了-c
开关,该开关也写在手册页中。而且它是[选项]
,所以它应该在[用户名]
前面!像这样的东西应该可以完成这项工作:
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'"
第二行告诉我答案:sudo:未知用户:i sudo:无法初始化策略插件,但第一行运行完美,这对我来说已经足够了,非常感谢!第二行告诉我答案:sudo:未知用户:i sudo:无法初始化策略插件,但第一行运行完美,这对我来说已经足够了,非常感谢!