Geo*_*rge 4 linux ssh bash shell command-line
我可以访问一个 linux 服务器,在那里我可以在没有密码的情况下像这样 sudo 到 'foo':
sudo su - foo
Run Code Online (Sandbox Code Playgroud)
一旦我成为 'foo' 用户,我就可以运行这样的脚本:
/dir/foo_user_script.sh
Run Code Online (Sandbox Code Playgroud)
'foo_user_script' 只能由 foo 用户而不是我的用户执行。因此,我可以通过首先更改为“foo”用户然后运行脚本来运行脚本。
但是,我正在尝试使用 Java SSH 客户端ganymed自动化一些流程。Ganymed 的 faq 建议运行多个命令,我应该使用如下结构:
Session.execCommand("echo Hello && echo again")
Run Code Online (Sandbox Code Playgroud)
我试过这样的事情,但第二个命令(foo_user_script)没有执行:
Session.execCommand("sudo su - foo && /dir/foo_user_script.sh")
Run Code Online (Sandbox Code Playgroud)
我认为这不起作用,因为 su 启动了一个新的 shell。
我有什么办法可以在单个命令中运行 /dir/foo_user_script.sh 脚本吗?
注意:
“sudo -l”向我展示了这个:
(root) NOPASSWD: /bin/su - foo
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助!
| 归档时间: |
|
| 查看次数: |
16214 次 |
| 最近记录: |