自动将脚本作为远程服务器上的其他用户运行

时间:2018-01-29 14:53:19

标签: linux amazon-ec2 ssh

我可以使用命令在远程服务器上运行脚本: ssh user1@ip-of-server "command"

工作正常但我需要用不同的用户(user2)执行命令。
如果我手动完成 - 这些将是步骤:
1)SSH作为user1到服务器
2)sudo su - user2
3)执行命令(现为user2)

自动化的最佳方法是什么?我应该作为user2 ssh到服务器,还是有ssh作为user1的方法,切换到user2并执行命令?

感谢。

1 个答案:

答案 0 :(得分:1)

当你进入ssh时,你可以像你说的那样执行命令:

ssh user@server command

您还可以执行多个命令:

ssh user@server 'command1; command2; command3;'

为了在脚本中以另一个用户身份执行操作,您(理想情况下)需要启用无密码的sudo,详细信息为here

但作为TLDR,您需要将以下内容放在/ etc / sudoers文件中:

ALL ALL = (ALL) NOPASSWD: ALL

我不能建议这样做,但是你也遵循我链接的指令,以便更好地控制。

一旦你有无密码的sudo,你就可以执行以下操作:

ssh user@server 'sudo -u user2 "whoami"'

该命令将返回user2