使用 Jsch 检查 SFTP 权限

Pas*_*alV 5 java ssh sftp jsch

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

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

提前致谢。

Dmi*_*mov 4

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

ChannelSftp channel = (ChannelSftp)session.openChannel("sftp");
SftpATTRS attrs = channel.lstat(fileOnServer)
boolean userHasPermissionsToWriteFile = attrs != null && ((attrs.getPermissions() & 00200) != 0) && attrs.getUId() != 0; 
Run Code Online (Sandbox Code Playgroud)

在哪里

attrs.getUId() != 0
Run Code Online (Sandbox Code Playgroud)

检查用户不是 root

  • 如果我错了,请纠正我,但不会检查文件是否具有所有者写入权限?那么如果所有者不是登录用户怎么办? (4认同)