如何使用 su 选项通过 ssh 运行本地 shell 脚本

如何使用 su 选项通过 ssh 运行本地 shell 脚本

我有一个名为 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

相关内容