According to the tar spec [1], uname/gname should only be filled when they have successfully been resolved from the uid/gid. The tarfile module incorrectly defaults to root:root in this case. A patch against svn trunk r82183 is included. All tarfile unit tests still pass with this patch. I did not include a new unit test as chown() is required. Example using tarfile: $ ls -l tarfile_user -rw-r--r-- 1 65533 jbronder 0 2010-06-23 17:44 tarfile_user $ python -c "import tarfile;a = tarfile.open('bleh.tar', 'w:');a.add('tarfile_user');a.list()" -rw-r--r-- root/jbronder 0 2010-06-23 17:44:55 tarfile_user Example using GNU tarball: $ tar -cf bleh.tar tarfile_user $ python -c "import tarfile;a = tarfile.open('bleh.tar').list()" -rw-r--r-- 65533/jbronder 0 2010-06-23 17:44:55 tarfile_user 1. http://www.gnu.org/software/tar/manual/tar.html#SEC170