give more rights... (same like at --secure)
[util-vserver.git] / util-vserver / scripts / vrpm-preload
1 #! /bin/bash
2 # $Id$
3
4 # Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
5 #  
6 # This program is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; version 2 of the License.
9 #  
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 # GNU General Public License for more details.
14 #  
15 # You should have received a copy of the GNU General Public License
16 # along with this program; if not, write to the Free Software
17 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18
19 set -e
20
21 : ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
22 test -e "$UTIL_VSERVER_VARS" || {
23     echo "Can not find util-vserver installation; aborting..."
24     exit 1
25 }
26 . "$UTIL_VSERVER_VARS"
27
28 lib=$_RPM_FAKE_SO
29
30 #scall_nr=$($_VSERVER_INFO  x SYSCALL_NEW_S_CONTEXT_NR  2>/dev/null)
31 #scall_rev=$($_VSERVER_INFO x SYSCALL_NEW_S_CONTEXT_REV 2>/dev/null)
32 vdir=$($_VSERVER_INFO "$CUR_VSERVER" VDIR)    || vdir="$CUR_VSERVER"
33 ctx=$($_VSERVER_INFO  "$CUR_VSERVER" CONTEXT) || ctx=
34
35 test -d "$vdir" || {
36     echo $"Can not find chroot environment at '$vdir' for '$CUR_VSERVER'" >&2
37     exit 1
38 }
39 for bin in `which rpm` /bin/rpm /usr/lib/rpm/rpmi ""; do
40     ldd "$bin" &>/dev/null && break
41 done
42
43 test "$bin" || {
44     echo $"No dynamically linked rpm binary found; exiting..."  >&2
45     exit 1
46 }
47
48 #RPM_FAKE_S_CONTEXT_REV=$scall_rev \
49 #RPM_FAKE_S_CONTEXT_NR=$scall_nr \
50 RPM_FAKE_CHROOT=$vdir \
51 RPM_FAKE_CTX=$ctx \
52 RPM_FAKE_CAP=$[ ~0xd40c04ff ] \
53 LD_PRELOAD=$lib${LD_PRELOAD:+:$LD_PRELOAD} \
54 exec $bin "$@"