Hello everybody,
I just took over this job from someone else and in the past this script they built worked but i recently upgraded from openSuSe 11.4 to 12.1
Now when i run the script i get an ambiguous error at line 25 (the first line after add() )
I have edited out the webpath and any passwords other than that the code is identical.
#!/bin/sh
# Version 1.1 Updated to new path /server/path/
# Version 1.0 Script created, tested and released
#Modified by Creater (creator@email) for OpenSUSE 11
#BULK add new user and delete users script from following website
#Arne Aase Blog Archive Guide: Simple shell script - Adding users to linux from file
#Added CHMOD command to stop users from reading other folders
#Added MySQL database (called username) setup for user using same username and password
#added MySQL database delete command when deleting user
#usage - add new students:
#sh students.sh -a add.txt
#text file format:
#add new user (1 username / password per line): username,passowrd,
#usage - delete students:
#sh students.sh -d del.txt
#text file format:
#delete user (1 per line): username
add()
{
while read line
do
username=`echo $line | cut -d',' -f1`
#removed | mkpasswd -H md5 -s from the end of line
password=`echo $line | cut -d',' -f2`
echo "Accounts created for $username"
sudo /usr/sbin/useradd -m $username -g 1001 -k /server/path/student/skel/ -d /server/path/student/$username
#from http://www.kylecorey.ca/bash_scripting
#assigns the password for the user
echo "$password" | passwd --stdin "$username"
#echos password for terminal display
echo "Password for $username is $password"
#set permissions so user cannot read other folders
chmod g-rx /server/path/student/$username
#create new database for user
#from RBBOT on Grant priviledge for a user to a database via bash scripting - Web Hosting Talk
mysql --user user --password=myawesomepassword --execute="CREATE USER $username@'localhost' IDENTIFIED BY '$password'"
mysql --user user --password=myawesomepassword --execute="CREATE DATABASE $username"
mysql --user user --password=myawesomepassword --database mysql --execute="grant select , insert , update , delete , alter , create , drop on $username.* to $username@localhost iden
tified by '$password'"
done < $1
exit 1
}
del()
{
while read line
do
username=`echo $line | cut -d',' -f1`
#added -r to delete user directory
sudo /usr/sbin/userdel -r $username
#added MySQL command to drop user database
#from RBBOT on Grant priviledge for a user to a database via bash scripting - Web Hosting Talk
mysql --user user --password=myawesomepassword --execute="DROP DATABASE $username"
mysql --user user --password=myawesomepassword --execute="DROP USER $username@'localhost'"
echo "Accounts deleted $username"
done < $1
exit 1
}
help()
{
echo "usage: -a -d -h <file>"
echo " -a add users listed in file"
echo " -d delete users listed in file"
echo " -h print help"
exit 1
}
while getopts adh opt
do
case ${opt} in
a ) add ${!#};;
d ) del ${!#};;
h ) help;;
\? ) help;;
esac
done
help