X-Git-Url: https://git.jankratochvil.net/?p=nethome.git;a=blobdiff_plain;f=bin%2Fmockrun;h=25a2694b15f3435cde798c66727645f9a42d9641;hp=8163f24f9d41b4e7b0fed0d47ccab69816a2b13c;hb=1e89c61491280898bba83249923caf2a99e78ab3;hpb=ff3d62a8ef4da31debdf1e7391b425ac1957bbf6 diff --git a/bin/mockrun b/bin/mockrun index 8163f24..25a2694 100755 --- a/bin/mockrun +++ b/bin/mockrun @@ -1,20 +1,19 @@ #! /usr/bin/perl -T -# $Id$ +# $Id: mockrun,v 1.2 2009/10/03 17:45:41 jkratoch Exp $ use strict; use warnings; use English; die "Need [/var/lib/mock/] []" if @ARGV<1; local $_=shift; -$EUID==0 or die "Need SUID"; -$UID = $EUID; delete @ENV{qw(PATH BASH_ENV)}; tr{/}{}s; s{^/var/lib/mock/}{}; -my $safe="([-_a-z0-9]+)"; +my $safe="([-_a-z0-9/]+)"; $_=(/$safe/)[0]; +my $HOME=($ENV{"HOME"}=~/$safe/)[0]; my $rpath="/var/lib/mock/$_/root"; -system "/usr/local/sbin/mocksetup -s $_" and die "mocksetup $_"; +system "sudo $HOME/bin/mocksetup -s $_" and die "sudo mocksetup $_"; -e "$rpath/MOCK" or die "mocksetup $_ and still no $rpath/MOCK"; my $user=$ENV{"USER"}; $user=($user=~/$safe/)[0]; @@ -24,7 +23,7 @@ $user=($user=~/$safe/)[0]; # my @l=(qw(mock -r),$_,qw(--shell)); my $mock="/usr/bin/setarch"; my $arch=(/-(i386|x86_64)(?:-.*)?$/)[0] or die; -my @l=("setarch",$arch,"/usr/sbin/chroot",$rpath); +my @l=("setarch",$arch,"/usr/bin/sudo","/usr/sbin/chroot",$rpath); # Untaint @ARGV->@args. my $args="";