Feature #8268: Basic Puppet agent support on Windows
Should not manage or source metadata from files on non-NTFS volumes on Windows
|Assignee:||Josh Cooper||% Done:|
|Affected Puppet version:||2.7.6||Branch:||https://github.com/puppetlabs/puppet/pull/200|
If a non-NTFS volume is mounted in Windows, we cannot get or set the owner, group or mode (DACL). In some cases, this can lead to a segfault due to interpreting the boolean return value incorrectly.
We should consider attempts to manage these files as invalid, and attempts to source metadata, e.g. uid, should return nil.
#1 Updated by Josh Cooper over 1 year ago
- Status changed from Accepted to In Topic Branch Pending Review
- Branch set to https://github.com/puppetlabs/puppet/pull/200
Previously puppet on Windows could segfault when managing files on non-NTFS volumes, such as a network share. There were also problems setting/clearing the readonly attribute, and issues interpreting BOOL return values.
These commits ensure that an error is raised when attempting to manage owner, group, and/or mode on non-NTFS volumes. It also provides default values when a file is sourced from a non-NTFS volume, for example,
puppet resource file z:\
#2 Updated by Josh Cooper over 1 year ago
Cygwin’s mount code solely looks at the FILE_PERSISTENT_ACLS flags to determine whether to attempt to get/set security descriptors, which is what we are doing. I also discovered that some ‘NTFS’ volumes do not support ACLs, e.g. NetApp, so I updated the error message to reflect that owner, etc can only be managed on filesystems that support Windows ACLs, such as NTFS.
#3 Updated by Jacob Helwig over 1 year ago
- Status changed from In Topic Branch Pending Review to Merged - Pending Release
- Target version changed from 2.7.x to 2.7.7
This has been merged into 2.7.x in commit:8c307e8801277e35a5d3a29bfb6df4c4faad80b0 and 2.7rc in commit:22b8722a25a61a4daea9e2aa174a87d8e07acc8c