summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJameson Graef Rollins <jrollins@phys.columbia.edu>2008-06-19 18:09:41 -0400
committerJameson Graef Rollins <jrollins@phys.columbia.edu>2008-06-19 18:09:41 -0400
commit7019354a75ca19ffd2e10f2e2b3dc89b480156bd (patch)
tree0acbae5dad6595840642330691796cd40cf6f8a9 /src
parentf511119f57f076147acb2b5dccae597b34df6c8d (diff)
Better handling of unknown users in server update-users. Updated TODO file.
Diffstat (limited to 'src')
-rw-r--r--src/common13
-rwxr-xr-xsrc/monkeysphere-server10
2 files changed, 18 insertions, 5 deletions
diff --git a/src/common b/src/common
index 00ee7b0..e98f1bc 100644
--- a/src/common
+++ b/src/common
@@ -18,10 +18,17 @@ ETC="/etc/monkeysphere"
export ETC
CACHE="/var/cache/monkeysphere"
export CACHE
+ERR=0
+export ERR
########################################################################
### UTILITY FUNCTIONS
+error() {
+ log "$1"
+ ERR=${2:-'1'}
+}
+
failure() {
echo "$1" >&2
exit ${2:-'1'}
@@ -29,12 +36,12 @@ failure() {
# write output to stderr
log() {
- echo -n "ms: " 1>&2
- echo "$@" 1>&2
+ echo -n "ms: " >&2
+ echo "$@" >&2
}
loge() {
- echo "$@" 1>&2
+ echo "$@" >&2
}
# cut out all comments(#) and blank lines from standard input
diff --git a/src/monkeysphere-server b/src/monkeysphere-server
index 154c146..a9a9aed 100755
--- a/src/monkeysphere-server
+++ b/src/monkeysphere-server
@@ -162,6 +162,12 @@ case $COMMAND in
for uname in $unames ; do
MODE="authorized_keys"
+ # check all specified users exist
+ if ! getent passwd | cut -d: -f1 | grep -q "^${uname}$" ; then
+ error "----- unknown user '$uname' -----"
+ continue
+ fi
+
# set authorized_user_ids variable,
# translate ssh-style path variables
authorizedUserIDs=$(translate_ssh_variables "$uname" "$AUTHORIZED_USER_IDS")
@@ -201,8 +207,6 @@ case $COMMAND in
log "authorized_keys file updated."
done
-
- log "----- done. -----"
;;
'gen-key'|'g')
@@ -237,3 +241,5 @@ case $COMMAND in
Type '$PGRM help' for usage."
;;
esac
+
+exit "$ERR"