
Inodes in Linux have a number of attributes which don’t exist in Windows, including their owner and group, the file mode, and others. These attributes are stored in NTFS Extended Attributes associated with the files on disk. The following information is stored in the Extended Attributes:C'est nul. ils pourraient mieux synchroniser les fichiers sans EA plutot que les ignorer.
Mode: this includes the file type (regular, symlink, FIFO, etc.) and the permission bits for the file.
Owner: the user ID and group ID of the Linux user and group that own the file.
Device ID: for device files, the device major and minor number of the device. Note that WSL currently does not allow users to create device files on VolFs.
File times: the file accessed, modified and changed times on Linux use a different format and granularity than on Windows, so these are also stored in the EAs.
In addition, if a file has any file capabilities, these are stored in an alternate data stream for the file. Note that WSL currently does not allow users to modify file capabilities for a file.
The remaining inode attributes, such as inode number and file size, are derived from information kept by NTFS.
Interoperability with Windows
While VolFs files are stored in regular files on Windows in the directories mentioned above, interoperability with Windows is not supported. If a new file is added to one of these directories from Windows, it lacks the EAs needed by VolFs, so VolFs doesn’t know what to do with the file and simply ignores it. Many editors will also strip the EAs when saving an existing file, again making the file unusable in WSL.
Additionally, since VFS caches directory entries, any modifications to those directories that are made from Windows while WSL is running may not be accurately reflected.
Nil (./6857) :Tu veux dire, on est dans le répertoire home de l'utilisateur machin, donc on crée le fichier en rw pour l'utilisateur machin ?
Après, ça ressemble quand-même à une limitation du driver NTFS côté Windows (par choix ?) qui ne renseigne pas ces informations alors qu'il pourrait (en utilisant les informations d'utilisateur Unix au moment de la création du fichier, par exemple)
Folco (./6860) :Mais ces permissions existent déjà dans l'environnement Windows, pour le propriétaire, du coup en quoi est-ce un problème de poursuivre (comme on le fait naturellement sous Windows comme avec Linux avec les permissions héritées.
- de définir des permissions (donc rw, par exemple)
- de hacker linux pour aller connaitre le couple uid/gidEuh tout le système est un hack, à la base ; les fichiers créés sous l'environnement Linux se retrouvent avec des droits NTFS normaux (y compris des droits de propriétaire), probablement parce qu'il y a une API d'abstraction qui permet justement d'aller lire les SID (équivalent des uid/gid) Windows au moment de la création des fichiers dans Linux. Je ne vois absolument aucune contre indication à ce qu'il y ait une API identique (qui interrogerait un service, ou directement le FS de la partie Linux pour lire les informations des utilisateurs) pour récupérer ces informations.
Nil (./6864) :Pas certain de bien te comprendre : Linux lirait les SID en créant un fichier ?
les fichiers créés sous l'environnement Linux se retrouvent avec des droits NTFS normaux (y compris des droits de propriétaire), probablement parce qu'il y a une API d'abstraction qui permet justement d'aller lire les SID (équivalent des uid/gid) Windows au moment de la création des fichiers dans Linux
Nil (./6864) :Un service de Linux ? Il n'est pas censé tourner tout le temps. Le linux est censé être vanilla, ignorant complètement qu'il est en fait interfacé avec Windows.
Je ne vois absolument aucune contre indication à ce qu'il y ait une API identique (qui interrogerait un service, ou directement le FS de la partie Linux pour lire les informations des utilisateurs) pour récupérer ces informations
Nil (./6864) :Oui mais non, je veux dire qu'un interface n'est pas un hack, quand même ^^
Euh tout le système est un hack, à la base ; les fichiers créés sous l'environnement Linux se retrouvent avec des droits NTFS normaux
Folco (./6866) :Que ce soit du côté de Windows ou de Linux importe peu : il y a une API qui permet de générer des événements à la volée. Du coup, on peut très bien imaginer la même chose à l'envers, avec un service Unix qui tourne soit en permanence, soit uniquement pendant que le Linux vanilla est en activité avec une synchronisation des métadonnées au démarrage (ce qui me semble un peu lourd s'il y a énormément de nouveau fichiers, mais pas plus que quand il y a une gestion des fichiers hors-ligne au final).
Pas certain de bien te comprendre : Linux lirait les SID en créant un fichier ?
De ce que j'ai compris, la création d'un fichier par Linux est interceptée par Windows, qui s'occupe classiquement des SID, et stocke la partie purement unix dans les EA.
Folco (./6866) :Ca, ça peut très bien se faire dans une interface en parallèle où tu poses des équivalences Windows<->Linux (c'est ce que fait Samba en utilisant par défaut l'identifiant comme clé, d'ailleurs).
Quant à hacker une partition... humMême si tu retrouves les différents uid/gid, qu'est-ce qui te permettrait de deviner lesquels choisir ? Uniquement l'emplacement où l'on crée le fichier ? AMHA c'est une présomption bien trop forte pour être fiable.