Create User Linux and DB
Dit script wordt gebruikt om een of meer gebruikers aan te maken. Gebruiker wordt aangemaakt op Linux systeem en op de database. De gebruiker krijgt een database met de naam hetzelfde als de gebruikersnaam.
adduser.sh
#!/bin/bash
# Script to add a user to Linux system
DB_FILE=createDBUsers.tmp
addThisUser() {
if [ $(id -u) -eq 0 ]; then
echo "" >> $DB_FILE
if [ "$1" == "" ]; then
read -p "Enter username : " username
else
username=$1
fi
if [ "$2" == "" ]; then
read -s -p "Enter password : " password
else
password=$2
fi
egrep "^$username" /etc/passwd >/dev/null
if [ $? -eq 0 ]; then
echo "$username exists!"
exit 1
else
U_HOME=/var/www/softwaredeveloper/$username
U_GROUP=sftp
U_SHELL=/bin/bash
pass=$(perl -e 'print crypt($ARGV[0], "password")' $password)
useradd -d $U_HOME -g $U_GROUP -m -s $U_SHELL -p $pass $username
[ $? -eq 0 ] && echo "User $username has been added to system!" || echo "Failed to add a user!"
chown $username $U_HOME
echo "<?php echo \"welkom $username\"; ?>" > $U_HOME/index.php
chown $username $U_HOME/index.php
echo "" > $DB_FILE
echo "CREATE USER \`$username\`@\`%\` IDENTIFIED BY '$password';" >> $DB_FILE
echo "ALTER USER \`$username\`@\`%\` REQUIRE NONE;" >> $DB_FILE
echo "CREATE DATABASE IF NOT EXISTS \`$username\`;" >> $DB_FILE
echo "GRANT ALL PRIVILEGES ON \`$username\`.* TO \`$username\`@\`%\`;" >> $DB_FILE
if [ "$2" == "" ]; then
echo "Database not created (will only be done automatically is password is provided via command line"
echo "Create database with mysql < $DB_FILE"
echo "for batch creation uncomment line #mysql < $DB_FILE"
else
mysql < $DB_FILE
echo "Database $username created"
fi
fi
else
echo "Only root may add a user to the system"
echo
echo "Usage:"
echo "sudo $0 u12345 password"
exit 2
fi
}
# is parameter is file then read input from file <user> <password>
# else read two command line params
if test -f "$1"; then
while IFS= read -r line
do
addThisUser $line
done < $1
else
addThisUser $1 $2
fi
Beschrijving sudo adduser.sh gebruiker password
In regel 11 en 16 wordt er gecontroleerd of de gebruikersnaam en wachtwoord als parameters zijn meegegven. Als dat niet het geval dan vraagt het script om een gebruikersnaam en/of wachtwoord.
Regel 22 controleert of de opgegeven gebruierk al bestaat.
Op regel 33 wordt de gebruiker aan het Linux systeem toegeovoegd, de waarden die daar boven staan worden gebruikt bij het aanmaken van een gebruiker.
Op regel 37 wordt een standaard index.php voor de gebruiker aangemaakt.
Op regel 40 en verder wordt een file gemaakt waarin SQL commando's worden geplaatst. De inhoud van de ze file moet na dit script nog zelf worden uitgevoerd.
Op regel 47 wordt gekeken of er een password is ingegeven als parameter als dat het geval is dan wordt de db user ook gemaakt.
Hiervoor moet mysql zo zijn geconfigureerd dat er een file vanuit de command line kan worden uitgevoerd.
Op regel 67 begint het scipt eigenlijk (alles daarvoor is een grote functie). Als parameter 1 een file is dan wordt er een file met gerbuikersnamen en wachtwoorden verewerkt en anders wordt de functie 'addThisUser' gewoon aangeroepen metdezelfde paramters alsdat dit scipt is aangeroepen.
--