diff options
Diffstat (limited to 'src/bin/createuser/createuser.sh')
-rw-r--r-- | src/bin/createuser/createuser.sh | 252 |
1 files changed, 0 insertions, 252 deletions
diff --git a/src/bin/createuser/createuser.sh b/src/bin/createuser/createuser.sh deleted file mode 100644 index aead7af672a..00000000000 --- a/src/bin/createuser/createuser.sh +++ /dev/null @@ -1,252 +0,0 @@ -#!/bin/sh -#------------------------------------------------------------------------- -# -# createuser.sh-- -# utility for creating a user in the POSTGRES database -# -# Copyright (c) 1994, Regents of the University of California -# -# -# IDENTIFICATION -# $Header: /cvsroot/pgsql/src/bin/createuser/Attic/createuser.sh,v 1.13 1999/09/27 16:44:56 momjian Exp $ -# -# Note - this should NOT be setuid. -# -#------------------------------------------------------------------------- - -CMDNAME=`basename $0` -SYSID= -CANADDUSER= -CANCREATE= - -if [ -z "$USER" ]; then - if [ -z "$LOGNAME" ]; then - if [ -z "`whoami`" ]; then - echo "$CMDNAME: cannot determine user name" - exit 1 - fi - else - USER=$LOGNAME - export USER - fi -fi - -while [ -n "$1" ] -do - case $1 in - -a) AUTHSYS=$2; shift;; - -h) PGHOST=$2; shift;; - -p) PGPORT=$2; shift;; - -d) CANCREATE=t;; - -D) CANCREATE=f;; - -u) CANADDUSER=t;; - -U) CANADDUSER=f;; - -i) SYSID=$2; shift;; - *) NEWUSER=$1;; - esac - shift; -done - -if [ -z "$AUTHSYS" ]; then - AUTHOPT="" -else - AUTHOPT="-a $AUTHSYS" -fi - -if [ -z "$PGHOST" ]; then - PGHOSTOPT="" -else - PGHOSTOPT="-h $PGHOST" -fi - -if [ -z "$PGPORT" ]; then - PGPORTOPT="" -else - PGPORTOPT="-p $PGPORT" -fi - -PARGS="-tq $AUTHOPT $PGHOSTOPT $PGPORTOPT" - -# -# generate the first part of the actual monitor command -# - -PSQL="psql $PARGS" - -# -# see if user $USER is a superuser -# - -QUERY="select usesuper from pg_user where usename = '$USER' " -#echo $QUERY - -ADDUSER=`$PSQL -c "$QUERY" template1` - -if [ $? -ne 0 ] -then - echo "$CMDNAME: database access failed." 1>&2 - exit 1 -fi - -if [ -n "$ADDUSER" ] -then - -if [ $ADDUSER != "t" ] -then - echo "$CMDNAME: $USER cannot create users." 1>&2 - exit 1 -fi -fi - -# -# get the user name of the new user. Make sure it doesn't already exist. -# - -if [ -z "$NEWUSER" ] -then - echo PG_OPT_DASH_N_PARAM "Enter name of user to add ---> PG_OPT_BACKSLASH_C_PARAM" - read NEWUSER -fi - -QUERY="select usesysid from pg_user where usename = '$NEWUSER' " - -RES=`$PSQL -c "$QUERY" template1` - -if [ $? -ne 0 ] -then - echo "$CMDNAME: database access failed." 1>&2 - exit 1 -fi - -if [ -n "$RES" ] -then - echo "$CMDNAME: user "\"$NEWUSER\"" already exists" 1>&2 - exit 1 -fi - -done=0 - -# -# get the system id of the new user. Make sure it is unique. -# - -while [ $done -ne 1 ] -do - DEFSYSID=`pg_id $NEWUSER 2>/dev/null` - if [ $? -eq 0 ]; then - DEFMSG=" or RETURN to use unix user ID: $DEFSYSID" - else - DEFMSG= - DEFSYSID= - fi - while [ -z "$SYSID" ] - do - echo PG_OPT_DASH_N_PARAM "Enter user's postgres ID$DEFMSG -> PG_OPT_BACKSLASH_C_PARAM" - read SYSID - [ -z "$SYSID" ] && SYSID=$DEFSYSID; - SYSIDISNUM=`echo $SYSID | egrep '^[0-9]+$'` - if [ -z "$SYSIDISNUM" ] - then - echo "$CMDNAME: the postgres ID must be a number" - SYSID= - fi - done - QUERY="select usename from pg_user where usesysid = '$SYSID'::int4" - RES=`$PSQL -c "$QUERY" template1` - if [ $? -ne 0 ] - then - echo "$CMDNAME: database access failed." - exit 1 - fi - if [ -n "$RES" ] - then - echo - echo "$CMDNAME: $SYSID already belongs to $RES, pick another" - DEFMSG= DEFSYSID= SYSID= - else - done=1 - fi -done - -# -# get the rest of the user info... -# - -# -# can the user create databases? -# -if [ -z "$CANCREATE" ] -then - yn=f - - while [ "$yn" != y -a "$yn" != n ] - do - echo PG_OPT_DASH_N_PARAM "Is user \"$NEWUSER\" allowed to create databases (y/n) PG_OPT_BACKSLASH_C_PARAM" - read yn - done - - if [ "$yn" = y ] - then - CANCREATE=t - else - CANCREATE=f - fi -fi - -# -# can the user add users? -# - -if [ -z "$CANADDUSER" ] -then - yn=f - - while [ "$yn" != y -a "$yn" != n ] - do - echo PG_OPT_DASH_N_PARAM "Is user \"$NEWUSER\" a superuser? (y/n) PG_OPT_BACKSLASH_C_PARAM" - read yn - done - - if (test "$yn" = y) - then - CANADDUSER=t - else - CANADDUSER=f - fi -fi - -if [ "$CANCREATE" = "t" -o "$CANADDUSER" = "t" ] -then CANCATUPD="t" -else CANCATUPD="f" -fi - -QUERY="insert into pg_shadow \ - (usename, usesysid, usecreatedb, usetrace, usesuper, usecatupd) \ - values \ - ('$NEWUSER', $SYSID, '$CANCREATE', 'f', '$CANADDUSER','$CANCATUPD')" - -RES=`$PSQL -c "$QUERY" template1` - -# -# Wrap things up. If the user was created successfully, AND the user was -# NOT allowed to create databases, remind the DBA to create one for the user. -# - -if [ $? -ne 0 ] -then - echo "$CMDNAME: $NEWUSER was NOT added successfully" -else - echo "$CMDNAME: $NEWUSER was successfully added" - if [ "$CANCREATE" = f ] - then - echo PG_OPT_DASH_N_PARAM "Shall I create a database for \"$NEWUSER\" (y/n) PG_OPT_BACKSLASH_C_PARAM" - read yn - - if [ "$yn" = y ] - then - createdb $NEWUSER - else - echo "don't forget to create a database for $NEWUSER" - fi - fi -fi |