Script required to create many user accounts
Dennis Kaarsemaker
dennis at kaarsemaker.net
Tue Jan 31 13:20:05 UTC 2006
On di, 2006-01-31 at 14:55 +0200, Hendrik Boshoff wrote:
> Hi
>
> I have created a file with details of 360 children to whom I want to
> give access to our Edubuntu lab. It is a comma separated variable with
> the following fields:
>
> username, full name, password, group1, group2
>
> Can someone help with a script to create these users in a batch, and
> give them membership of both groups?
>
> The passwords are based on a standard pattern including their birthday.
> Not ideal, but I want to create a mailmerge letter to each containing
> their particulars. They will be encouraged to choose their own password
> once they have log'd on. (Is there a way to pre-expire a password?)
I use something like this for batch-adding, simply pipe the file into
it:
#!/bin/bash
while [ 0 ]; do
read LINE
USER=`echo $LINE | cut -f 1 -d ,`
FULLNAME=`echo $LINE | cut -f 2 -d ,`
PASSWORD=`echo $LINE | cut -f 3 -d ,`
GROUP1=`echo $LINE | cut -f 4 -d ,`
GROUP2=`echo $LINE | cut -f 5 -d ,`
if [ x"$USER" == x ]; then
break;
fi
# Generate password
CHARS="qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890"
SALT=""
for I in seq 8; do
SALT=${SALT}${CHARS:$((RANDOM % ${#CHARS})):1}
done
# Create user
echo "Adding user '$USER, $FULLNAME'"
adduser --disabled-password --gecos "$FULLNAME,,," $USER
usermod -p `echo $PWD | mkpasswd --salt $SALT --hash md5 --stdin` $USER
adduser $USER $GROUP1
adduser $USER $GROUP2
done
--
Dennis K.
- Linux for human beings: http://www.ubuntu.com
- Linux voor iedereen: http://www.ubuntu-nl.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <https://lists.ubuntu.com/archives/edubuntu-devel/attachments/20060131/0ab09480/attachment.pgp>
More information about the edubuntu-devel
mailing list