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