]> granicus.if.org Git - sudo/commitdiff
Add -M option (like -m but only for root)
authorTodd C. Miller <Todd.Miller@courtesan.com>
Tue, 1 Jan 2002 21:48:26 +0000 (21:48 +0000)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Tue, 1 Jan 2002 21:48:26 +0000 (21:48 +0000)
If we can't find "whoami", use "id" w/ some sed.

install-sh

index f424971b5b106b57569280426f6b7db7a5d47dad..c5eafa8fa5e6c354ecd5467a883306179464c045 100755 (executable)
@@ -32,6 +32,9 @@ for d in /usr/bin /usr/ucb /usr/bsd; do
        break
     fi
 done
+if [ X"$WHOAMI" = X"" ]; then
+    WHOAMI=id | sed -n 's/^[^(]*(\([^)]*\)).*/\1/p'
+fi
 
 for d in /usr/ccs/bin /usr/bin; do
     if [ -f $d/strip ]; then
@@ -48,7 +51,15 @@ STRIPIT=false
 BACKIT=false
 TOUCHIT=true
 SAVESRC=false
-ROOT=unknown
+
+case `${WHOAMI}` in
+root)
+    ROOT=true
+    ;;
+*)
+    ROOT=false
+    ;;
+esac
 
 ##  Process JCL.
 MORETODO=true
@@ -76,35 +87,11 @@ while ${MORETODO} ; do
        CHGROUPIT=true
        ;;
     X-G)
-       case ${ROOT} in
-       unknown)
-           case `${WHOAMI}` in
-           root)
-               ROOT=true
-               ;;
-           *)
-               ROOT=false
-               ;;
-           esac
-           ;;
-       esac
        GROUP="$2"
        shift
        ${ROOT} && CHGROUPIT=true
        ;;
     X-G*)
-       case ${ROOT} in
-       unknown)
-           case `${WHOAMI}` in
-           root)
-               ROOT=true
-               ;;
-           *)
-               ROOT=false
-               ;;
-           esac
-           ;;
-       esac
        if ${ROOT} ; then
            GROUP=`expr "$1" : '-g\(.*\)'`
            CHGROUPIT=true
@@ -119,6 +106,15 @@ while ${MORETODO} ; do
        MODE=`expr "$1" : '-m\(.*\)'`
        CHMODIT=true
        ;;
+    X-M)
+       MODE="$2"
+       ${ROOT} && CHMODIT=true
+       shift
+       ;;
+    X-M*)
+       MODE=`expr "$1" : '-m\(.*\)'`
+       ${ROOT} && CHMODIT=true
+       ;;
     X-n)
        TOUCHIT=false
        ;;
@@ -132,35 +128,11 @@ while ${MORETODO} ; do
        CHOWNIT=true
        ;;
     X-O)
-       case ${ROOT} in
-       unknown)
-           case `${WHOAMI}` in
-           root)
-               ROOT=true
-               ;;
-           *)
-               ROOT=false
-               ;;
-           esac
-           ;;
-       esac
        OWNER="$2"
        shift
        ${ROOT} && CHOWNIT=true
        ;;
     X-O*)
-       case ${ROOT} in
-       unknown)
-           case `${WHOAMI}` in
-           root)
-               ROOT=true
-               ;;
-           *)
-               ROOT=false
-               ;;
-           esac
-           ;;
-       esac
        if ${ROOT} ; then
            OWNER=`expr "$1" : '-o\(.*\)'`
            CHOWNIT=true