Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java “需要合并”;Sudo“;及;ScpTo“;JSch示例_Java_Scp_Jsch - Fatal编程技术网

Java “需要合并”;Sudo“;及;ScpTo“;JSch示例

Java “需要合并”;Sudo“;及;ScpTo“;JSch示例,java,scp,jsch,Java,Scp,Jsch,我没有成功地将“Sudo”和“ScpTo”案例结合起来 我注意到,两者都通过“exec”频道工作 清理“ScpTo”案例时显示“权限被拒绝”消息 “Sudo”案 Channel=session.openChannel(“exec”); setCommand(“sudo-S-uwhoami”); 很好 通过FarmManager连接到服务器时,我会写入服务器选项: sudo su -l <supervisor> -c /usr/libexec/openssh/sftp-server

我没有成功地将“Sudo”和“ScpTo”案例结合起来

我注意到,两者都通过“exec”频道工作

清理“ScpTo”案例时显示“权限被拒绝”消息

“Sudo”案

Channel=session.openChannel(“exec”);
setCommand(“sudo-S-uwhoami”);
很好

通过FarmManager连接到服务器时,我会写入服务器选项:

sudo su -l <supervisor> -c /usr/libexec/openssh/sftp-server
sudo su-l-c/usr/libexec/openssh/sftp服务器 此外,我可以像这样运行常见的SFTP客户端:

sftp -s 'sudo su -l <supervisor> -c /usr/libexec/openssh/sftp-server'  "usual user"@"host"
sftp-s'sudo su-l-c/usr/libexec/openssh/sftp server'“普通用户”@“主机”
并发出
put
命令

但是这种选项(
-s
)没有在JSch中实现

如何使用JSch配置我的案例(Sudo和ScpTo?

在中,有以下代码:

String command="scp " + (ptimestamp ? "-p" :"") +" -t "+rfile;
改为:

String command="sudo su -l <supervisor> -c scp " + (ptimestamp ? "-p" :"") +" -t "+rfile;
String command=“sudo su-l-cscp”+(ptimestamp?”-p):“)+”-t”+rfile;

现在它在channel.connect()之后的checkAck(in){int b=in.read();}中回答-1;您是否检查了服务器端日志中的任何错误消息?我无法完全访问该服务器和ssh进程,现在无法检查服务器端日志。我可以做些别的事情吗?从SSH终端尝试命令(
sudosu…-cscp…
),看看它输出什么。理想情况下,在不使用TTY的情况下尝试此操作。正如预期的那样:
对不起,不允许用户“普通用户”执行/bin/su-l'supervisor'-c scp-p-t。。作为…上的root用户
。如何改进JSch并为Sftp案例实现
-S
选项?这对我来说似乎并不难。
String command="sudo su -l <supervisor> -c scp " + (ptimestamp ? "-p" :"") +" -t "+rfile;