[CentOS] Tar of files

Wed Mar 3 19:29:35 UTC 2021
Gordon Messmer <gordon.messmer at gmail.com>

On 3/3/21 6:53 AM, Jerry Geis wrote:
> When I "tar" up an archive the files have an owner bob,
> when I extract that to another machine bob is there also but user number is
> different.
> So when I extract bob is no longer the owner of the files but someone else.
>
> Is there a good way to account for this ?


In order to answer that question, we need to know what system is 
creating the tar file and what system is extracting the file. There are 
several formats for tar archives (see the --format option to GNU tar for 
a list), and tar will have different options on different platforms.

This process works the way you expect, by default, on CentOS systems.

I can demonstrate that by creating a CentOS container, adding a user and 
creating a tar archive with a file owned by that user.  A new container, 
with users that have different numeric IDs will extract that archive and 
preserve the file's ownership by name and not numeric IDs:

$ podman run -v $(pwd):$(pwd):z -w $(pwd) -it centos:8
[root at 9d60934a7390 tartest]# useradd user1
[root at 9d60934a7390 tartest]# touch user1file
[root at 9d60934a7390 tartest]# chown user1 user1file
[root at 9d60934a7390 tartest]# tar cf user1.tar user1file
[root at 9d60934a7390 tartest]# exit

$ podman run -v $(pwd):$(pwd):z -w $(pwd) -it centos:8
[root at 49a5818ef7a6 tartest]# useradd user2
[root at 49a5818ef7a6 tartest]# useradd user1
[root at 49a5818ef7a6 tartest]# rm user1file
rm: remove regular empty file 'user1file'? y
[root at 49a5818ef7a6 tartest]# tar xf user1.tar
[root at 49a5818ef7a6 tartest]# ls -l
total 12
-rw-r--r--. 1 root  root 10240 Mar  3 19:21 user1.tar
-rw-r--r--. 1 user1 root     0 Mar  3 19:21 user1file