Am Fr., 15. März 2019 um 11:12 Uhr schrieb Pavel Raiskup <prais...@redhat.com>: > > Thanks for the report! +cc acl-devel > > On Thursday, March 14, 2019 2:51:10 PM CET Joerg Schilling wrote: > > Trying to unpack the reference archives for the POSIX ACL proposal from > > 1993 that was withdrawn in 1997 results in something like: > > > > /tmp/tar-1.31/src/tar --acls -xpf acl-test3.tar.gz > > /tmp/tar-1.31/src/tar: default/dir2: Warnung: Funktion acl_from_text > > fehlgeschlagen > > /tmp/tar-1.31/src/tar: default/dir3: Warnung: Funktion acl_from_text > > fehlgeschlagen > > /tmp/tar-1.31/src/tar: default: Warnung: Funktion acl_from_text > > fehlgeschlagen > > /tmp/tar-1.31/src/tar: default: Warnung: Funktion acl_from_text > > fehlgeschlagen > > This is because we use acl_from_text() without pre-filtering, which > doesn't accept the fourth UID/GID number value in e.g. > ACL record 'user:joe:rwx:503' (stored in the archive): > > $ tar -t -vv --acls -f acl-test5.tar > ... > drwxrwxr-x+ gruenbacher/assis 0 2001-11-04 04:43 default/dir2/ > a: user::rwx,user:joe:rwx:503,group::r-x,mask::rwx,other::r-x > ... > $ tar -xf --acls -f acl-test5.tar > ... > tar: default/dir2: Warning: Cannot acl_from_text: Invalid argument > ... > > I did not notice this so far, since we don't add the fourth numeric > argument to the SCHILY.acl.access header; neither star does that (on > Linux at least, despite the claim in manual page). > > I'm curious whether we should think about fixing this in acl_from_text() > function directly, or whether this should be handled solely in archivers.
It's a respobsibility of the archiver; these fields also don't get added by acl_to_text(). Whether to remove the number or replace the name with the number should probably depend on the --numeric-owner parameter. The Linux version of acl_from_text() will accept numeric IDs. There might be acl_from_text() implementations that don't allow that though, so some form of fallback behavior might make sense. Thanks, Andreas