支持在Linux中设置ACL

时间:2015-02-27 22:20:11

标签: java linux acl jna

我从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

我的问题是:

  1. 是否有某些版本的Java在Linux中支持AclFileAttributeView
  2. 如果对1的答案为否,那么有人可以共享一个示例JNA代码,或者给我一些指向我需要在Linux中使用的Native API的指针,以使其运行。
  3. 实际上我希望功能类似于setfaclgetfacl命令行。

0 个答案:

没有答案