FAI 5.0.3 Debian jessie: ftar ACL bug?

Alexander Bugl alexander.bugl at mpimet.mpg.de
Wed May 11 17:35:25 CEST 2016


Hi Thomas!

Thanks for your reply, that helped understanding the situation better:

>      > After some investigation we saw that there has been set a default ACL on
>      > _every_ directory in the installed clients -- removing this default ACL
>      > (setfacl -k) made sssd working again.
> Mmmm, can you please check if this is a tar bug? Maybe it's related to
> https://bugs.launchpad.net/ubuntu/+source/tar/+bug/1386237

The above cited bug report showed the strange behavior of tar:

When packing the base.tar.xz in /usr/sbin/fai-make-nfsroot tar is called 
in create_base() like this:
     tar --one-file-system -C $NFSROOT -cf $NFSROOT/var/tmp/base.tar 
--exclude etc/machine-id --exclude var/tmp/base.tar --exclude 
'var/lib/apt/lists/*_*' .

So there is no option --xattrs or --acl used.

When the base.tar.xz is extracted FAI uses /usr/sbin/ftar, and there it 
is tested if tar supports --xattrs (which the jessie version does):
# check if tar has xattrs support
tar --xattrs -cf /dev/null /dev/null 2>/dev/null 1>/dev/null
if [ $? -eq 0 ]; then
     xattrs="--xattrs --xattrs-include=*.* --selinux --acl"
else
     xattrs=
fi
So we have the case that --xattrs and --acl are used when extracting.

And the bug report for tar in 
https://bugs.launchpad.net/ubuntu/+source/tar/+bug/1386237 says: "The 
one that caught us there was that extracting a tar file with '--acl' 
that was created without '--acl' results in default acl being set on the 
top level extracted directory."

This is exactly what we noticed as our problem.

The example output in https://launchpadlibrarian.net/188428776/out shows 
the case:

=== extract-with/src-without/no-defaults ===
  == getfacl extract-with/src-without/no-defaults ==
  # file: extract-with/src-without/no-defaults
  # owner: root
  # group: root
  user::rwx
  group::r-x
  other::r-x
  default:user::rwx
  default:group::r-x
  default:other::r-x

  == ls -l extract-with/src-without/no-defaults ==
  total 0
  -rw-r--r-- 1 root root 0 Oct 27 10:56 foo
  == ls -ld extract-with/src-without/no-defaults ==
  drwxr-xr-x+ 2 root root 4096 Oct 27 10:56 
extract-with/src-without/no-defaults

> I would be happy if you could suggest a solution that works for
> (hopefully) everybody.

If I follow the discussion in 
https://bugzilla.redhat.com/show_bug.cgi?id=771927 it looks like there 
might not be a solution to make everybody happy. :-(
If I create the base.tar.xz on the same machine and file system as I 
extract it, the best option would be to use the same options for tar 
when creating and extracting, e.g. in both cases --xattrs and --acl or 
none of them.

But what if different FS are used (one without the possibility to use 
ACLs)? Or even different machines?

For me the solution would be to stop using ACLs/CAPs/EAs at all.

With regards, Alex

-- 
Alexander Bugl,        Central IT Services
Max  Planck  Institute   for   Meteorology
Bundesstrasse 53, D-20146 Hamburg, Germany
tel +49-40-41173-351, fax -356, room d0014


More information about the linux-fai mailing list