-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Paul Chitescu wrote:
How should server/file.c sd_to_mode() deal with filesystems that don't support full POSIX ownership and access permissions? It is quite popular to mount FAT filesystems - either from a removable media or a partition shared with a Windows installation.
FAT32 support
To support this, I think the following would need to be done:
* Possibly split out and extended the filesystem type autodetection code in dlls/ntdll/file.c::get_device_info() to autodetect the filesystem's ability to hold ACLs
* Implement NtQueryVolumeInformationFile(FileFsAttributeInformation) - this has flags such as: * FILE_PERSISTENT_ACLS: Persistent ACLs (NTFS vs FAT32), * FILE_CASE_SENSITIVE_SEARCH: case-sensitive search (POSIX) - this also has the name of the filesystem (e.g. NTFS, FAT32).
* Implement the honouring of FILE_PERSISTENT_ACLS in NtQuerySecurityObject, NtSetSecurityObject
* Possibly add a filesystem type configuration option to winecfg (separate to media type).
* Possibly honour the media and filesystem type settings as configured by winecfg.
Furthermore, there could be symlinks to such files so filesystem capability should be detected somehow from the file itself.
Volume Mount Point support
* Possibly extend dosdevices to include devices for Volume Mount Points.
* Possibly implement detection of symbolic links leading to mount points as volume mount points - i.e. create \Device entries for mount points, and redirect Volume Mount Point targets to those devices.