Как получить атрибут владельца файла из SAMBA (CIFS)?

В моем коде разработки я должен принести атрибут владельца файла с сервера SAMBA «CIFS» - File Share. Как я могу получить его, используя любой API в JAVA.

Заранее спасибо.


person Sai Pavan    schedule 08.05.2015    source источник


Ответы (2)


В JCIFS версии 1.3.18 есть исправление для получения владельца файла.

Ссылка на java-библиотеку 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.

person Agry    schedule 04.08.2015

Я использовал классы 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;
}
person Vijay    schedule 07.03.2017