В моем коде разработки я должен принести атрибут владельца файла с сервера SAMBA «CIFS» - общий доступ к файлам. Как я могу получить его, используя любой API в JAVA.Как получить атрибут владельца файла из SAMBA (CIFS)?
Заранее спасибо.
В моем коде разработки я должен принести атрибут владельца файла с сервера SAMBA «CIFS» - общий доступ к файлам. Как я могу получить его, используя любой API в JAVA.Как получить атрибут владельца файла из SAMBA (CIFS)?
Заранее спасибо.
Версия JCIFS версии 1.3.18 имеет патч, доступный для получения владельца файла.
Ссылка на Java Lib JCIFS является: https://jcifs.samba.org/src/jcifs-1.3.18.jar
Ссылка на файл патча является: https://jcifs.samba.org/src/patches/GetOwnerSid.patch
Вы должны получить источник версии 1.3.18, а затем генерировать JAR после применения патча , Также обратите внимание, что этот патч не разрешает SID владельца. Поэтому вы можете добавить код для разрешения SID.
Я использовал ACE & SID классы jcifs jar, чтобы получить идентификатор владельца smbFile. Используя тот же метод, любой может получить sid, доменное имя, домен sid и т. Д. В следующем методе мне нужен только идентификатор владельца, который извлекается из имени учетной записи SID.
public String retrieveOwnerIdOfFile(SmbFile smbFile) throws IOException {
String userName = "";
SID sid = null;
ACE[] acl = smbFile.getSecurity(true);
for (int i = 0; i < acl.length; i++) {
sid = acl[i].getSID();
if (sid.getType() == 1 && sid.getTypeText().equalsIgnoreCase("user")
&& sid.getAccountName() != null) {
userName = sid.getAccountName();
break;
}
}
return userName;
}