Невозможно прочитать файл Windows, даже если у него есть разрешение «Чтение», установленное через Java - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь установить разрешения для файла для группы администраторов из Java в Windows. Ниже приведен мой код:

public static void main(String[] args) throws IOException   {

 final Path path = Paths.get("C:/Dev/dummy/test"); 
 FileAttribute<?> permissions = new FileAttribute<List<AclEntry>>() {
    public String name() {
        return "acl:acl";
    }
    public List<AclEntry> value() {
        try {
            return get600ACL(path.getFileSystem());
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
 };

  Files.createFile(path, permissions);

}

private static List<AclEntry> get600ACL(FileSystem fileSystem) throws IOException {

List<AclEntry> aclEntryList = new ArrayList<AclEntry>();
 AclEntry.Builder acl3 = AclEntry.newBuilder();
 acl3.setPermissions(EnumSet.of(
         AclEntryPermission.READ_DATA, AclEntryPermission.WRITE_DATA, AclEntryPermission.WRITE_ATTRIBUTES,
         AclEntryPermission.SYNCHRONIZE, AclEntryPermission.READ_ACL, AclEntryPermission.READ_ATTRIBUTES, AclEntryPermission.READ_NAMED_ATTRS,
         AclEntryPermission.DELETE, AclEntryPermission.WRITE_NAMED_ATTRS, AclEntryPermission.APPEND_DATA, AclEntryPermission.EXECUTE, AclEntryPermission.DELETE,
         AclEntryPermission.DELETE_CHILD, AclEntryPermission.ADD_FILE, AclEntryPermission.ADD_SUBDIRECTORY, AclEntryPermission.LIST_DIRECTORY, AclEntryPermission.WRITE_ACL,
         AclEntryPermission.WRITE_ATTRIBUTES, AclEntryPermission.WRITE_DATA, AclEntryPermission.WRITE_OWNER
 ));
 GroupPrincipal grp2 = fileSystem.getUserPrincipalLookupService().lookupPrincipalByGroupName("Administrators");
 acl3.setPrincipal(grp2);
 acl3.setType(AclEntryType.ALLOW);
 AclEntry entry3 = acl3.build();
 aclEntryList.add(entry3);
 return aclEntryList;
}

После создания файла разрешения являются правильными, как показано на этом изображении

Нокогда я создаю нового пользователя, даю ему права администратора и пытаюсь открыть файл, он говорит, что у пользователя нет прав на чтение. Может кто-нибудь сказать мне, где я иду не так?

...