summaryrefslogtreecommitdiff
path: root/src/share/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/share/common')
-rw-r--r--src/share/common30
1 files changed, 22 insertions, 8 deletions
diff --git a/src/share/common b/src/share/common
index 2a20c1c..773c11f 100644
--- a/src/share/common
+++ b/src/share/common
@@ -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
- eval "$@"
+ 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
@@ -136,6 +143,7 @@ lock() {
else
lockfile -r 20 "${file}.lock" || failure "unable to lock '$file'"
fi
+ log debug "lock created on '$file'."
;;
touch)
if [ -n "$use_lockfileprogs" ] ; then
@@ -143,6 +151,7 @@ lock() {
else
: Nothing to do here
fi
+ log debug "lock touched on '$file'."
;;
remove)
if [ -n "$use_lockfileprogs" ] ; then
@@ -150,6 +159,7 @@ lock() {
else
rm -f "${file}.lock"
fi
+ log debug "lock removed on '$file'."
;;
*)
failure "bad argument for lock subfunction '$action'"
@@ -430,6 +440,8 @@ check_key_file_permissions() {
uname="$1"
path="$2"
+ log debug "checking path permission '$path'..."
+
# return 255 if cannot stat file
if ! stat=$(ls -ld "$path" 2>/dev/null) ; then
log error "could not stat path '$path'."
@@ -1018,6 +1030,8 @@ update_authorized_keys() {
# remove the lockfile and the trap
lock remove "$AUTHORIZED_KEYS"
+
+ # remove the trap
trap - EXIT
# note if the authorized_keys file was updated