diff options
-rw-r--r-- | utils/Makefile | 6 | ||||
-rw-r--r-- | utils/fakeroot.sh | 57 |
2 files changed, 60 insertions, 3 deletions
diff --git a/utils/Makefile b/utils/Makefile index c1c9652b..85022285 100644 --- a/utils/Makefile +++ b/utils/Makefile @@ -21,14 +21,14 @@ makemode := utilities targets = shd ps settrans showtrans syncfs fsysopts \ storeinfo login w uptime ids loginpr sush vmstat portinfo \ devprobe vminfo addauth rmauth unsu setauth ftpcp ftpdir storecat \ - storeread ping msgport rpctrace mount gcore fakeauth -special-targets = loginpr sush uptime + storeread ping msgport rpctrace mount gcore fakeauth fakeroot +special-targets = loginpr sush uptime fakeroot SRCS = shd.c ps.c settrans.c syncfs.c showtrans.c addauth.c rmauth.c \ fsysopts.c storeinfo.c login.c loginpr.sh sush.sh w.c \ uptime.sh psout.c ids.c vmstat.c portinfo.c devprobe.c vminfo.c \ parse.c frobauth.c frobauth-mod.c setauth.c pids.c nonsugid.c \ unsu.c ftpcp.c ftpdir.c storeread.c storecat.c ping.c msgport.c \ - rpctrace.c mount.c gcore.c fakeauth.c + rpctrace.c mount.c gcore.c fakeauth.c fakeroot.sh LCLHDRS = psout.h parse.h pids.h frobauth.h OBJS = $(filter-out %.sh,$(SRCS:.c=.o)) diff --git a/utils/fakeroot.sh b/utils/fakeroot.sh new file mode 100644 index 00000000..48251704 --- /dev/null +++ b/utils/fakeroot.sh @@ -0,0 +1,57 @@ +#!/bin/sh +# Execute a command in an environment where it appears to be root. +# +# Copyright (C) 2002 Free Software Foundation, Inc. +# +# This file is part of the GNU Hurd. +# +# The GNU Hurd is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2, or (at +# your option) any later version. +# +# The GNU Hurd is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# + +USAGE="Usage: $0 [OPTION...] [COMMAND...]" +DOC="Execute COMMAND in an environment where it appears to be root." + +while :; do + case "$1" in + --help|"-?") + echo "$USAGE" + echo "$DOC" + echo "" + echo " -?, --help Give this help list" + echo " --usage Give a short usage message" + echo " -V, --version Print program version" + exit 0;; + --usage) + echo "Usage: $0 [-V?] [--help] [--usage] [--version]" + exit 0;; + --version|-V) + echo "STANDARD_HURD_VERSION_fakeroot_"; exit 0;; + --) + shift + break;; + -*) + echo 1>&2 "$0: unrecognized option \`$1'" + echo 1>&2 "Try \`$0 --help' or \`$0 --usage' for more information"; + exit 1;; + *) + break;; + esac +done + +if [ $# -eq 0 ]; then + set -- ${SHELL:-/bin/sh} +fi + +exec /bin/settrans --chroot /bin/fakeauth "$@" -- / /hurd/fakeroot |