在 Linux 机器上,我用
安装了一个 CIFS 文件系统mount ... cifs ...,cifsacl
并且我能够使用 /usr/bin/getcifsacl
读取 ACL。此外,在 Windows 机器上,读取 Java 中的 ACL 可用于:
AclFileAttributeView view =
Files.getFileAttributeView(path, AclFileAttributeView.class)
但是当我将相同的 Java 代码应用到 Linux 上的 CIFS 安装时,view
为 null
。
是否有机会调整 CIFS 挂载或 Java 代码以便我可以读取 ACL? (我知道 jCIFS,但不需要任何额外的 Java 类库。)
答案可能是help here too .
最佳答案
Is there a chance to tweak ... the Java code such that I can read ACLs?
您始终可以下载 OpenJDK 源代码,了解如何构建它,然后进行更改以实现您想要的效果。但这是个坏主意。您不太可能找到任何愿意接受您的更改的人,而且大多数人都不愿意运行它们。
请注意,Linux OpenJDK 构建中的“rt.jar”文件不包含 Windows 文件属性 View 提供程序类。他们不在那里。因此,您将无法使用(假设的)反射调整来使用 Windows View 。也许您可以编译它们并将它们添加到引导类路径中。
请注意,如果出于许可原因您不愿意使用 jCIFS,同样的原因应该会阻止您“调整”OpenJDK。 OpenJDK 已获得 GPLv2 许可(具有“类路径异常(exception)”),您的调整也将包含在内。 (请注意,jCIFS 是 LGPLv2.1 ... 与 GPLv2 相比,它应该更少有问题。)
关于java - 在 Java 中从 CIFS 安装的文件系统读取 ACL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45961898/