从 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 安装时,view
是 null
。
是否有机会调整 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 少 问题。)
在 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 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 少 问题。)