我可以使用命令在远程服务器上运行脚本:
ssh user1@ip-of-server "command"
工作正常但我需要用不同的用户(user2)执行命令。
如果我手动完成 - 这些将是步骤:
1)SSH作为user1到服务器
2)sudo su - user2
3)执行命令(现为user2)
自动化的最佳方法是什么?我应该作为user2 ssh到服务器,还是有ssh作为user1的方法,切换到user2并执行命令?
感谢。
答案 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
。