5

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

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

提前致谢。

4

2 回答 2

4

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

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

检查用户不是root

于 2012-10-18T19:11:24.080 回答
-1

准备好的方法中的相同方法(格式化和重构):

  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;
  }
于 2015-11-19T06:50:54.633 回答