[issue14082] shutil doesn't copy extended attributes
Antoine Pitrou
report at bugs.python.org
Mon Apr 9 23:10:22 CEST 2012
Antoine Pitrou <pitrou at free.fr> added the comment:
> I’m writing a shutil.copyxattr() first which could simple get another
> argument for the namespaces that should be copied.
Sounds good to me :-)
> However what to do inside copy2()?
>
> I’m tending to either:
>
> 1. copy only user.*
> 2. ignore errors in any namespace != user
>
> Personally, I find the second approach rather non-deterministic.
But it's also more practical, e.g. when running as root you would
probably be surprised if only a subset of xattrs get copied, wouldn't
you? “Practicality beats purity.”
For reference, here is part of the documentation for GNU cp's "-a"
option:
`-a'
`--archive'
Preserve as much as possible of the structure and attributes of the
original files in the copy (but do not attempt to preserve internal
directory structure; i.e., `ls -U' may list the entries in a copied
directory in a different order). Try to preserve SELinux security
context and extended attributes (xattr), but ignore any failure to
do that and print no corresponding diagnostic. Equivalent to `-dR
--preserve=all' with the reduced diagnostics.
Meaning that "cp -a" tries to copy all xattrs and silences errors when
it's not possible to do so.
"cp --preserve=all" seems to have a similar error-silencing behaviour:
`all'
Preserve all file attributes. Equivalent to specifying all
of the above, but with the difference that failure to
preserve SELinux security context or extended attributes does
not change `cp''s exit status. In contrast to `-a', all but
`Operation not supported' warnings are output.
----------
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue14082>
_______________________________________
More information about the Python-bugs-list
mailing list