我目前正在使用Jsch實現SFTP客戶端。使用Jsch檢查SFTP權限
對於此客戶端,我需要檢查登錄用戶在SFTP服務器上擁有的權限,以檢查用戶是否能夠執行某些操作。不幸的是,我似乎無法找到任何文檔或示例向我們展示如何做到這一點。
在此先感謝。
我目前正在使用Jsch實現SFTP客戶端。使用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
檢查該用戶沒有根的準備方法
糾正我,如果我錯了,但不會檢查看到該文件擁有所有者寫入權限?那麼,如果所有者是登錄用戶以外的人呢? – neubert 2016-05-05 05:16:10
同樣的方法(格式化和重構):
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;
}
什麼樣的允許你的意思是?特定文件的文件權限?組成員資格? – mthmulders 2012-08-01 09:08:35
目前我也是一名客戶,他提供了一些基本功能。你需要什麼? – reporter 2012-08-02 14:56:48
基本上我需要檢查登錄用戶是否具有SFTP服務器上的讀/寫權限才能處理各種文件。 – PascalV 2012-08-07 10:14:46