add test to su_monkeysphere_user to check that the user is
authorJameson Graef Rollins <jrollins@finestructure.net>
Wed, 18 Feb 2009 00:07:24 +0000 (19:07 -0500)
committerJameson Graef Rollins <jrollins@finestructure.net>
Wed, 18 Feb 2009 00:07:24 +0000 (19:07 -0500)
monkeysphere user or root, and fail otherwise.  this is so that there
is no password prompt for unpriviledged users (see bug #519).

src/share/common

index 42df68494fc9911c19b06896124baf7e426b8c41..773c11fe9fe42a6e3ef21ba5ecc9f856fb64500e 100644 (file)
@@ -92,15 +92,22 @@ log() {
 
 # run command as monkeysphere user
 su_monkeysphere_user() {
-    # if the current user is the monkeysphere user, then just eval
-    # command
-    if [ $(id -un) = "$MONKEYSPHERE_USER" ] ; then
-       bash -c "$@"
+    case $(id -un) in
+       # if monkeysphere user, run the command under bash
+       "$MONKEYSPHERE_USER")
+           bash -c "$@"
+           ;;
 
-    # otherwise su command as monkeysphere user
-    else
-       su "$MONKEYSPHERE_USER" -c "$@"
-    fi
+         # if root, su command as monkeysphere user
+       'root')
+           su "$MONKEYSPHERE_USER" -c "$@"
+           ;;
+
+       # otherwise, fail
+       *)
+           log error "non-privileged user."
+           ;;
+    esac
 }
 
 # cut out all comments(#) and blank lines from standard input