Solaris uses NFSv4 ACLs while Linux uses POSIX ACLs. They are not directly compatible.
While Linux is (naturally) using
gnu-tar, as you pointed out, I suspect that on Solaris you're using Solaris' native
According to the Solaris
tar(1) man page:
Restore the named files to their original modes, and
ACLs if applicable, ignoring the present umask(1). This
is the default behavior if invoked as super-user with
the x function letter specified. If super-user, SETUID,
and sticky information are also extracted, and files are
restored with their original owners and permissions,
rather than owned by root. When this function modifier
is used with the c function, ACLs are created in the
tarfile along with other information. Errors occur when
a tarfile with ACLs is extracted by previous versions of
You should use
gnu-tar on Solaris if you're using the
-p flag to preserve permissions and the tar will be extracted on a Linux system.
If you're using Solaris 11, install the
gnu-tar package which will be located in
/usr/gnu/bin/gtar. If you're using a release earlier than Solaris 11 you'll need to get
gnu-tar from Sun FreeWare (which may be available on your Solaris Companion CD).