Add --no-same-owner and --no-same-permissions options to tar.
diff --git a/archival/libunarchive/data_extract_all.c b/archival/libunarchive/data_extract_all.c
index d10d665..42e4423 100644
--- a/archival/libunarchive/data_extract_all.c
+++ b/archival/libunarchive/data_extract_all.c
@@ -111,8 +111,12 @@
 		}
 	}
 
-	lchown(file_header->name, file_header->uid, file_header->gid);
-	if ((file_header->mode & S_IFMT) != S_IFLNK) {
+	if (!(archive_handle->flags & ARCHIVE_NOPRESERVE_OWN)) {
+		lchown(file_header->name, file_header->uid, file_header->gid);
+	}
+	if (!(archive_handle->flags & ARCHIVE_NOPRESERVE_PERM) &&
+		 (file_header->mode & S_IFMT) != S_IFLNK)
+	{
 		chmod(file_header->name, file_header->mode);
 	}