2017-08-30 18 views
0

にファイルシステムをマウント私は読むACLはLinuxマシン上でJava

mount ... cifs ...,cifsacl 

でCIFSファイルシステムをマウントし、私は/usr/bin/getcifsaclでACLを読み出すことができると思います。さらに、Windowsマシン上で、JavaでのACLを読み取ることで動作します:

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

しかし、私はCIFSに同じJavaコードを適用すると、Linux上でマウントし、viewnullです。

ACLを読み取れるようにCIFSマウントまたはJavaコードを微調整する機会はありますか? (私はjCIFSを知っていますが、追加のJavaクラスライブラリなしでやる必要があります)。

答えはhelp here tooです。

答えて

1

ACLを読み取ることができるようなJavaコードを調整する機会はありますか?

いつでもOpenJDKのソースコードをダウンロードし、ビルド方法を理解してから、必要な変更を行うことができます。しかし、それは悪い考えです。あなたはあなたの変更を喜んで受け入れる人を見つけることはほとんどありませんし、ほとんどの人はそれを実行する意思がありません。

Linux用OpenJDKビルドの "rt.jar"ファイルには、Windowsファイル属性ビュープロバイダクラスは含まれていません。彼らはそこにいません。だから、あなたはWindowsのビューを使うために(仮説的な)反射調整を使用することができません。おそらく、それらをコンパイルしてbootclasspathに追加することができます。


あなたはライセンス上の理由からJCIFSを使用するために不本意であれば、同じ論法は「微調整」のOpenJDKからあなたを防ぐ必要があることに注意してください。 OpenJDKはGPLv2としてライセンスされています(「classpath exception」もあります)、あなたの調整も同様にカバーされます。 (jCIFSはLGPLv2.1です... はGPLv2よりもの方が問題ありません)

+0

私はJVM/JDK自体をターゲットにしていませんでしたが、自分のJavaコードを参照していました愚かな間違い。しかし、とにかく 'jar tvf。\ jre \ lib \ rt.jar | grep -i windows | grep -i属性'は、Linux上ではまったく完全に空であり、Windows上にいくつかのクラスを表示しています。それは私が見ていた最後の場所でした。残念なことだが、後ろ向きに理解できる可能性が高い:-( – Harald

関連する問題