Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.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 使用Jsch检查SFTP权限_Java_Ssh_Sftp_Jsch - Fatal编程技术网

Java 使用Jsch检查SFTP权限

Java 使用Jsch检查SFTP权限,java,ssh,sftp,jsch,Java,Ssh,Sftp,Jsch,我目前正在使用Jsch实现一个SFTP客户机 对于该客户端,我需要检查登录用户在SFTP服务器上的权限,以便检查用户是否能够执行某些操作。不幸的是,我似乎找不到任何文档或示例来说明如何做到这一点 提前感谢。此代码将执行您想要的操作: ChannelSftp channel = (ChannelSftp)session.openChannel("sftp"); SftpATTRS attrs = channel.lstat(fileOnServer) boolean userHasPermissi

我目前正在使用Jsch实现一个SFTP客户机

对于该客户端,我需要检查登录用户在SFTP服务器上的权限,以便检查用户是否能够执行某些操作。不幸的是,我似乎找不到任何文档或示例来说明如何做到这一点


提前感谢。

此代码将执行您想要的操作:

ChannelSftp channel = (ChannelSftp)session.openChannel("sftp");
SftpATTRS attrs = channel.lstat(fileOnServer)
boolean userHasPermissionsToWriteFile = attrs != null && ((attrs.getPermissions() & 00200) != 0) && attrs.getUId() != 0; 
在哪里

attrs.getUId() != 0

检查用户是否不是根用户,在ready方法中使用相同的方法(格式化和重构):


你指的是什么样的权限?特定文件的文件权限?组成员资格?目前我还在一个客户端工作,该客户端提供一些基本功能。您需要什么?基本上,我需要检查登录用户是否具有SFTP服务器上的读/写权限,以便处理各种文件。如果我错了,请更正我,但检查文件是否具有所有者写入权限?那么,如果所有者不是登录用户,该怎么办?
  private boolean accessAllowed(String path) 
    throws SftpException, JSchException {

    boolean result = false;

    ChannelSftp channel = (ChannelSftp) session.openChannel("sftp");
    SftpATTRS attrs = channel.lstat(path);

    result =
      attrs != null &&
      ((attrs.getPermissions() & 00200) != 0) &&
       attrs.getUId() != 0;

    return result;
  }