从 Java 中的 CIFS 安装文件系统读取 ACL

Read ACLs from CIFS mounted file system in Java

在 Linux 盒子上,我用

安装了一个 CIFS 文件系统
mount ... cifs ...,cifsacl

并且我能够使用 /usr/bin/getcifsacl 读出 ACL。此外,在 Windows 框上,读取 Java 中的 ACL 适用于:

AclFileAttributeView view = 
    Files.getFileAttributeView(path, AclFileAttributeView.class)

但是当我将相同的 Java 代码应用到 Linux 上的 CIFS 安装时,viewnull

是否有机会调整 CIFS 安装或 Java 代码以便我可以读取 ACL? (我知道 jCIFS,但不需要任何额外的 Java class 库。)

答案可能 help here too

Is there a chance to tweak ... the Java code such that I can read ACLs?

您始终可以下载 OpenJDK 源代码,了解如何构建它,然后进行更改以实现您想要的效果。但这是个坏主意。您不太可能找到愿意接受您的更改的人,而且大多数人都不愿意 运行 他们。

根据记录,Linux 的 OpenJDK 构建中的 "rt.jar" 文件不包含 Windows 文件属性视图提供程序 类。他们不在那里。因此,您将无法使用(假设的)反射调整来使用 Windows 视图。也许你可以编译它们并将它们添加到引导类路径中。


请注意,如果您出于许可原因不愿意使用 jCIFS,同样的原因应该会阻止您 "tweaking" OpenJDK。 OpenJDK 已获得 GPLv2 许可(使用 "classpath exception"),您的调整也将包含在内。 (请注意,jCIFS 是 LGPLv2.1 ... 应该比 GPLv2 问题。)