2017-08-30 5 views
0

Sur une boîte Linux, je montais un système de fichiers CIFS avecACLs Lire à partir du système de fichiers CIFS monté en Java

mount ... cifs ...,cifsacl 

et je suis capable de lire avec ACLs /usr/bin/getcifsacl. En outre, sur une boîte de Windows, lecture ACLs en Java fonctionne avec:

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

Mais quand j'applique le même code Java pour CIFS monter sur Linux, le view est null.

Y at-il une chance de modifier la monture CIFS ou le code Java de telle sorte que je puisse lire les listes de contrôle d'accès? (Je connais jCIFS, mais je n'ai besoin d'aucune bibliothèque de classes Java supplémentaire.)

Une réponse serait probablement help here too.

Répondre

1

Y at-il une chance de modifier ... le code Java de telle sorte que je puisse lire les ACL?

Vous pouvez toujours télécharger le code source OpenJDK, comprendre comment le construire, puis développer des modifications pour faire ce que vous voulez. Mais c'est une mauvaise idée. Il est peu probable que vous trouviez quelqu'un qui accepte vos changements, et la plupart des gens ne seraient pas prêts à les exécuter. Pour l'anecdote, le fichier "rt.jar" dans OpenJDK build pour Linux n'inclut pas les classes du fournisseur d'affichage des attributs de fichier Windows. Ils ne sont pas là. Donc, vous ne seriez pas en mesure d'utiliser des réglages réfléchis (hypothétiques) pour utiliser les vues Windows. Peut-être que vous pourriez les compiler et les ajouter au bootclasspath.


Notez que si vous ne voulez pas utiliser jcifs pour des raisons de licence, le même raisonnement devrait vous empêcher de « peaufinage » OpenJDK. OpenJDK est sous licence GPLv2 (avec l'exception "classpath"), et vos réglages seront également couverts. (Notez que jCIFS est LGPLv2.1 ... ce qui devrait être moins problématique que GPLv2)

+0

Avec le peaufinage je ne visais pas la JVM/JDK elle-même, mais je me référais à mon propre code Java où j'ai pu faire erreurs stupides. Mais de toute façon 'jar tvf. \ Jre \ lib \ rt.jar | grep -i windows | grep -i attribut' est en effet complètement vide sur Linux tout en montrant une poignée de classes sur Windows. Cela aurait été le dernier endroit que j'aurais regardé. Dommage, mais probablement compréhensible avec le recul :-( – Harald