我从Java 7开始理解,我可以使用如下代码为文件设置ACL:
java.nio.file.Path file = Paths.get(filePath);
java.nio.file.attribute.GroupPrincipal joe = file.getFileSystem().getUserPrincipalLookupService()
.lookupPrincipalByGroupName(groupid);
AclFileAttributeView view = Files.getFileAttributeView(file, AclFileAttributeView.class);
java.nio.file.attribute.AclEntry entry = java.nio.file.attribute.AclEntry.newBuilder()
.setType(AclEntryType.ALLOW)
.setPrincipal(joe)
.setPermissions(aclEntryPermissions)
.build();
List<java.nio.file.attribute.AclEntry> acl = view.getAcl();
acl.add(entry);
view.setAcl(acl);
但是这段代码不适用于Linux(适用于Windows和Solaris)。原因似乎是因为Linux中不支持AclFileAttributeView
。
我的问题是:
AclFileAttributeView
?实际上我希望功能类似于setfacl
和getfacl
命令行。