This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author Ryan Govostes
Recipients Ryan Govostes, ned.deily, ronaldoussoren
Date 2017-12-16.16:45:00
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1513442701.16.0.213398074469.issue32347@psf.upfronthosting.co.za>
In-reply-to
Content
On macOS, shutil.copystat() uses chflags() to try to copy filesystem flags from the source to destination.

In recent years, Apple introduced System Integrity Protection, which prevents modification of system files. These files have the non-standard SF_RESTRICTED flag set, which only the superuser can set.

Thus, unprivileged users can no longer use shutil.copy2() et al. to copy system files, which is a regression from previous releases of the OS.

It's unclear what the correct behavior should be: It some cases, it would be desirable to attempt to copy the bit.

It might be informative to look at the behavior of Apple's `copyfile_stat` function, which unsets these two flags:

   /*
    * File flags that are not preserved when copying stat information.
    */
   #define COPYFILE_OMIT_FLAGS 	(UF_TRACKED | SF_RESTRICTED)

https://opensource.apple.com/source/copyfile/copyfile-146/copyfile.c.auto.html

This was also filed to Apple as rdar://36090921
History
Date User Action Args
2017-12-16 16:45:01Ryan Govostessetrecipients: + Ryan Govostes, ronaldoussoren, ned.deily
2017-12-16 16:45:01Ryan Govostessetmessageid: <1513442701.16.0.213398074469.issue32347@psf.upfronthosting.co.za>
2017-12-16 16:45:00Ryan Govosteslinkissue32347 messages
2017-12-16 16:45:00Ryan Govostescreate