我知道有getPermissions()
方法,但我不知道如何使用它。如果用户可以读取文件,如何使用JSch检查?如何使用JSch与SFTP协议检查读取权限?
3
A
回答
3
首先,你通常应该问一个功能性问题(你想达到什么目的),以得到一个有用的答案。你问到我一个实现/技术细节,因此我可能是无用的技术答案:的* nix的权限
SftpATTRS.getPermissions()
返回数值表示:
https://en.wikipedia.org/wiki/File_system_permissions#Numeric_notation
这是对自己没有足够的判断,如果当前用户拥有读取文件的权限。此外,您必须知道:谁是文件的所有者(getUId
返回所有者ID,但SFTP中没有用于将用户名映射到/从用户名映射的API)以及什么是文件组(getGId
,相同) 。
所以你只能确保用户可以读取文件,当每个人都有权限这样做。您可以通过标记0004
(读取其他课程的权限)来了解情况。但缺少标志并不意味着用户不能读取该文件,例如如果用户是文件的所有者并且有标志0400
(读取所有者类的权限)。
另外请注意,当远程系统不是* nix(例如它是Windows)时,getPermissions()
的值通常无关紧要。
非平凡的,但唯一可靠的方法是挖掘JSch源代码并提取新API以打开文件以供阅读。然后,您可以尝试打开文件(您不必实际读取任何内容)以告知用户是否有权这样做。
相关问题
- 1. 使用Jsch检查SFTP权限
- 2. 如何使用JSch sftp chown?
- 3. 如何检查协议
- 4. apache httpcomponent和sftp协议 - 协议可以使用吗?
- 5. 使用JSch和GlobalScape的SFTP
- 6. 问题在JSch使用SFTP
- 7. 如何重写JSCH SFTP?
- 8. sftp与R - sftp不是与RCurl的协议
- 9. TURN协议:远程用户的权限
- 10. JSCH Sftp printWorkingDirectory
- 11. 权限被拒绝使用JSch
- 12. 使用JSCH设置目录权限CHMOD
- 13. 无法读取使用JSch
- 14. SFTP进入错误:用户没有适当的读取权限
- 15. 如何使用SFTP协议进行多次上传尝试?
- 16. 如何检查使用C#的文件的读取访问权限
- 17. Android如何检查权限?
- 18. SFTP上传权限
- 19. 如何检查协议是否实现?
- 20. 如何重复使用SSH(Jsch)会议
- 21. LFTP mkdir -p不能用于sftp协议?
- 22. 如何使用FTP协议恢复读取InputStream
- 23. 如何在使用Angular 2时读取HTTP协议标题?
- 24. 检查用户权限的权限
- 25. 检查权限
- 26. 检查权限?
- 27. 使用jsch库复制sftp文件
- 28. 使用Java的SFTP文件传输JSch
- 29. 无法使用jcraft JSch连接到SFTP
- 30. Android上的Youtube - 如何检查它使用的协议?
我正在编写一个程序,向您显示服务器上的可用存储库,并允许您下载所选内容。有些目录不是hg存储库。我需要查看每个目录以检查是否存在“.hg”目录。问题是我没有查看所有目录的权限,我得到“权限被拒绝”。这就是为什么我需要检查一下,如果我可以进去,如果没有 - 跳过。 –
那么,“权限被拒绝”是您寻找的指示。赶上例外,你很好。 –