#!/usr/bin/perl -w # changetar.pl - a tar file permissions fixing too # # Copyright (C) 2003-2006 Brian Caswell # use strict; use Archive::Tar; my $tar = Archive::Tar->new(); $tar->read($ARGV[0], 1); foreach my $file ( $tar->list_files( [ 'name', 'size', 'mtime', 'mode', 'uid', 'gid', 'linkname', 'uname', 'gname', 'devmajor', 'devminor', 'prefix' ] ) ) { my $name = ${$file}{'name'}; my $content = $tar->get_content($name); ${$file}{'uid'} = 0; ${$file}{'gid'} = 0; ${$file}{'uname'} = "root"; ${$file}{'gname'} = "root"; $tar->remove($name); $tar->add_data($name, $content, $file); } $tar->write("$ARGV[0]" . ".gz",1);