X-Git-Url: https://git.jankratochvil.net/?p=nethome.git;a=blobdiff_plain;f=bin%2Fmockrun;h=25a2694b15f3435cde798c66727645f9a42d9641;hp=41e1e45c803e5d2be46798589f596d0da03e9c2f;hb=257109ce5b17e8bf1e9990564d3eef7722746c0b;hpb=b75851b5cc36cc5ef7e110a14250f6b42b516a43 diff --git a/bin/mockrun b/bin/mockrun index 41e1e45..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]; @@ -23,8 +22,8 @@ $user=($user=~/$safe/)[0]; # my $mock="/usr/bin/mock"; # my @l=(qw(mock -r),$_,qw(--shell)); my $mock="/usr/bin/setarch"; -my $arch=(/-([^-]+)$/)[0]; -my @l=("setarch",$arch,"/usr/sbin/chroot",$rpath); +my $arch=(/-(i386|x86_64)(?:-.*)?$/)[0] or die; +my @l=("setarch",$arch,"/usr/bin/sudo","/usr/sbin/chroot",$rpath); # Untaint @ARGV->@args. my $args="";