我有一个名为 test_ms.sh 的脚本,我想通过 ssh 和 su - 用户名选项运行它。
我是服务器 A 和服务器 B 上的用户 X,并且我有服务器 B 上用户 Y 的 su 访问权限。但我无权直接访问用户 Y。
现在,我想以用户Y的身份在远程服务器B上执行位于服务器A上的脚本。
如果我以用户 X 的身份通过 ssh 运行脚本,它可以正常工作
ssh X@B 'sh -s' < test_ms.sh
但是,如果我以用户 B 的身份从服务器 A 通过用户 X 在服务器 Y 上运行脚本,它不起作用。
我正在使用以下方法来执行脚本。
ssh X@B su Y -c 'sh -s' < test_ms.sh
请建议如何实现这一点。
答案1
假设您没有登录,root
否则这将有效。如果是这样,您还拥有目标用户的密码。那么,您为什么要摆弄su
而不是直接以该用户身份登录?如果远程计算机上的目标用户是bob
,请使用该名称进行连接:
ssh bob@host ./test_ms.sh
或者
ssh bob@host sh -s < /test_ms.sh