本文介绍了需要结合"Sudo"和"ScpTo" JSch的示例的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我无法将"Sudo"和"ScpTo"两种情况组合在一起.
I'm unsuccessful with combining "Sudo" and "ScpTo" cases.
我注意到,两者都通过"exec"通道工作.
I noticed, that both work through "exec" channel.
"ScpTo"清除案例以权限被拒绝"消息结束.
Clean "ScpTo" case finishes with "Permission denied" message.
"Sudo"案
Channel channel = session.openChannel("exec");
((ChannelExec) channel).setCommand("sudo -S -u <supervisor> whoami");
工作正常.
当我通过FarManager连接到服务器时,我会写服务器选项:
When I connect to my server through FarManager I write server option:
sudo su -l <supervisor> -c /usr/libexec/openssh/sftp-server
此外,我可以像这样运行普通的SFTP客户端:
Also, I can run usual SFTP client like this:
sftp -s 'sudo su -l <supervisor> -c /usr/libexec/openssh/sftp-server' "usual user"@"host"
并给出put
命令.
但是JSch中未实现这种选项(-s
).
But such option (-s
) is not implemented in JSch.
如何使用JSch配置案子(Sudo& ScpTo)?
How can I configure my case (Sudo & ScpTo) with JSch?
推荐答案
在 ScpTo.java
示例,有以下代码:
In ScpTo.java
example, there's this code:
String command="scp " + (ptimestamp ? "-p" :"") +" -t "+rfile;
将其更改为:
String command="sudo su -l <supervisor> -c scp " + (ptimestamp ? "-p" :"") +" -t "+rfile;
这篇关于需要结合"Sudo"和"ScpTo" JSch的示例的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!