2015-05-08 13 views

ответ

0

Версия 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.

0

Я использовал 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; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^