我可以访问一个 Linux 服务器,在那里我可以像这样使用 sudo 来访问‘foo’而不需要密码:
sudo su - foo
一旦我成为“foo”用户,我就可以运行如下脚本:
/dir/foo_user_script.sh
'foo_user_script' 只能由 foo 用户执行,而不能由我的用户执行。因此,我可以通过先切换到 'foo' 用户,然后运行该脚本来运行该脚本。
不过,我正在尝试使用 Java SSH 客户端来自动化一些流程甘尼美德。Ganymed 的常见问题解答建议,要运行多个命令,我应该使用如下结构:
Session.execCommand("echo Hello && echo again")
我尝试了类似的操作,但第二条命令(foo_user_script)没有执行:
Session.execCommand("sudo su - foo && /dir/foo_user_script.sh")
我认为这不起作用因为 su 启动了一个新的 shell。
有什么方法可以让我通过单个命令运行 /dir/foo_user_script.sh 脚本吗?
笔记:
“sudo -l”向我显示了以下内容:
(root) NOPASSWD: /bin/su - foo
谢谢您的帮助!
答案1
sudo -u foo /dir/foo_user_script.sh