Java将组添加到目录权限列表

时间:2019-01-30 21:24:48

标签: java permissions directory

我正在努力为特定组授予使用file.mkdirs()创建的目录结构的顶层权限。我已经找到了如何更改目录的所有者,但这不是我所需要的,我需要向有权访问该目录的人的列表中添加一个组。具体来说,这是针对Windows系统和我要创建的文件夹结构的。我需要将组添加到文件夹的安全性部分,以允许它们读取和写入所有子目录。这有可能吗?

1 个答案:

答案 0 :(得分:0)

感谢@Robyte将我指向正确的方向。下面是未完成的代码,我需要进行一些重构,但这使我得到了大部分需要的东西。

try {
    Path path = file.toPath();

    AclFileAttributeView aclView = Files.getFileAttributeView(path, AclFileAttributeView.class);
    if(aclView == null)
    {
        System.out.format("ACL View not supported");
    }

    UserPrincipal up = FileSystems.getDefault().getUserPrincipalLookupService().lookupPrincipalByName("username");
    Set<AclEntryPermission> aep = EnumSet.of(READ_DATA,WRITE_DATA);

    AclEntry builder = AclEntry.newBuilder().setType(AclEntryType.ALLOW).
            setPrincipal(up).setPermissions(aep).build();

    List<AclEntry> acl = aclView.getAcl();
    acl.add(0,builder);
    aclView.setAcl(acl);
} catch (IOException ex) {
    Logger.getLogger(PermissionsUtil.class.getName()).log(Level.SEVERE, null, ex);
}