使用Java从CIFS挂载的文件系统读取ACL

时间:2017-08-30 13:33:18

标签: java linux cifs

在Linux机器上,我使用

挂载了一个CIFS文件系统
/usr/bin/getcifsacl

我可以用AclFileAttributeView view = Files.getFileAttributeView(path, AclFileAttributeView.class) 读出ACL。此外,在Windows框中,读取Java中的ACL可以使用:

view

但是,当我将相同的Java代码应用于Linux上的CIFS装载时,null<activity android:name=".HomeActivity" android:clearTaskOnLaunch="true" android:configChanges="orientation|screenSize" android:launchMode="singleTask" android:resumeWhilePausing="true" android:stateNotNeeded="true" android:taskAffinity="${applicationId}.home" android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.HOME"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity>

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

答案很可能help here too

1 个答案:

答案 0 :(得分:1)

  

是否有机会调整... Java代码,以便我可以读取ACL?

您可以随时下载OpenJDK源代码,弄清楚如何构建它,然后开发更改以执行您想要的操作。但那是一个坏主意。您不太可能找到愿意接受您的更改的人,并且大多数人都不愿意运行它们。

为了记录,&#34; rt.jar&#34;用于Linux的OpenJDK build中的文件不包括Windows文件属性视图提供程序类。他们不在那里。因此,您无法使用(假设的)反射调整来使用Windows视图。也许你可以编译它们并将它们添加到bootclasspath。

请注意,如果您因许可原因而不愿意使用jCIFS,同样的推理应该会阻止您进行调整&#34; OpenJDK的。 OpenJDK被许可为GPLv2(&#34;类路径异常&#34;),您的调整也将被涵盖。 (注意,jCIFS是LGPLv2.1 ...它应该比GPLv2 更少有问题。)