create/extract: ignore OSError if ACLs are not supported (ENOTSUP)

but do not silence other OSErrors.
This commit is contained in:
Thomas Waldmann 2024-02-25 03:06:32 +01:00
parent d870c58e61
commit 33f1ba699e
No known key found for this signature in database
GPG Key ID: 243ACFA951F78E01
1 changed files with 10 additions and 2 deletions

View File

@ -902,7 +902,11 @@ Utilization of max. archive size: {csize_max:.0%}
if not symlink:
os.chmod(path, item.mode)
if not self.noacls:
acl_set(path, item, self.numeric_ids, fd=fd)
try:
acl_set(path, item, self.numeric_ids, fd=fd)
except OSError as e:
if e.errno not in (errno.ENOTSUP, ):
raise
if not self.noxattrs:
# chown removes Linux capabilities, so set the extended attributes at the end, after chown, since they include
# the Linux capabilities in the "security.capability" attribute.
@ -1165,7 +1169,11 @@ class MetadataCollector:
attrs['xattrs'] = StableDict(xattrs)
if not self.noacls:
with backup_io('extended stat (ACLs)'):
acl_get(path, attrs, st, self.numeric_ids, fd=fd)
try:
acl_get(path, attrs, st, self.numeric_ids, fd=fd)
except OSError as e:
if e.errno not in (errno.ENOTSUP, ):
raise
return attrs
def stat_attrs(self, st, path, fd=None):