The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl -w

use strict;
BEGIN {
  delete @ENV{qw(IFS CDPATH PATH ENV BASH_ENV)};
}

# This is meant to be suid enabled
# This is the version using sudo. There is an alternative version using ssh.

my $fsc ='/usr/local/bin/fixsrccont';
my $sudo = '/usr/bin/sudo';

my $rc = 0;
my %batch;
for (@ARGV) {
  push @{$batch{$1}}, $2 if /^(\w+?):(.*)$/;
}
for my $owner (keys %batch) {
  my $arg = join '@@', @{$batch{$owner}}; # split on whitespace...
  $rc |= ((getpwuid($<))[0] eq $owner)? system($fsc, $arg)
    : system($sudo, '-u', $owner, $fsc, $arg);
}
exit $rc;