我知道有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」目錄。問題是我沒有查看所有目錄的權限,我得到「權限被拒絕」。這就是爲什麼我需要檢查一下,如果我可以進去,如果沒有 - 跳過。 –
那麼,「權限被拒絕」是您尋找的指示。趕上例外,你很好。 –