Re: User creation script

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



not exactly, here a script I have done to had user from a list, you can
adapt it to fit your needs. This script create users with temporary
crypted password, add them to the mail server and crate an elementary
web page... Choose what you want (sorry for comments in French!):

<snip> - --
Fran�ois Patte
UFR de math�matiques et informatique
Universit� Ren� Descartes
http://www.math-info.univ-paris5.fr/~patte

Très beau script.  Je ne l'ai pas regardé de trop près encore, mais je
vois des points que je n'ai pas couverts dans le mien. (english:  Very
nice script.  I haven't looked at it closely yet, but I see points
that I didnèt cover in mine).

In re-reading the original request, I notice that we kind of got
caught up in nice scripts, but really the OP seems to simply want to
be able to do newuser {username} {password}.

In its simplest form it would be:

/usr/sbin/useradd $1 && echo "$2" | passwd --stdin $1 && echo
Successfully added user $1 ||
echo "unable to add $1"

If you are the only user of this script and know the format then you
are ok with that.  But to make it a proper script with error checking
you'd incorporate getops to read the parameters on the command line
(and even allow you to do -u username -p password in whichever order
you'd like).

This would be much better:
------------------------------------------------------------------------------------------------------
#!/bin/bash

USERNAME=""
PASSWORD=""
MISSING_PARM=1 # exit status if parameter missing
HELP_ME=2 # exit status if person used the help switch
TOO_MANY_PARMS=3 # Too many parameters

clear

usage="Usage: $0 -u <username> -p <password>"

if [ $# -gt 4 ]
then
  echo "Too many parameters!"
  echo $usage
  exit $TOO_MANY_PARMS
fi
# checking for any command line options

while getopts "u:p:" opt; do
  case $opt in
	u ) USERNAME=$OPTARG ;;
	p ) PASSWORD=$OPTARG ;;
	h | \? | -help ) echo $usage
		exit $HELP_ME ;;
  esac
done

if [ "$USERNAME" = "" ] || [ "$PASSWORD" = "" ]
then
  echo "You must provide a username and a password."
  echo $usage
  exit $MISSING_PARM
fi

/usr/sbin/useradd $USERNAME && echo "$PASSWORD" | passwd --stdin
$USERNAME && echo Successfully added user $USERNAME ||
echo "Unable to add $USERNAME"

exit 0 # normal exit
--------------------------------------------------------------------------------------------------------

With the above script using getops, you can use either:
./scriptname -u username -p password
or
./scriptname -p password -u username

Keep in mind that scripting can be tricky.  A space here or one
missing there can potentially make a difference between a command
working or not working.  The /usr/sbin command goes on one line up to
th end of: echo "Unable to add $USERNAME".  Depending on your screen
width while reading the e-mail it may not appear as one line.

And notice the various exit codes that you can use to cause another
script to react based on the exit code from this one.

Jacques B.


[Index of Archives]     [Current Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]     [Fedora Docs]

  Powered by Linux