Mission 2 Automate account creation

Cahier des charges : ppe1-2016-04-mission2-v0-3

Fichier CSV(login) : 2016-employees

Il faut donc « parse »(explode,split) le fichier csv pour créer les users ce qu’il faut faire

créer  comme nom d’utilisateur : <1ere lettre prenom , 7 premieres lettre nom> mot de passe : date de naissance

set le groupe au service si il n’existe pas le créer

créer le dossier html_public de $USER

copier la page d’attente (parking) /var/www/parking.php -> /home/$USER/html_public/index.php

Voici la liste de commande pour créer un utilisateurs a manuellement

adduser test 
groupadd developpment
usermod -G developpment test

mkdir /home/test/html_public
cp /var/www/parking.php /home/test/public_html/index.ph

 

 

Voici le script qui permet de faire tous cela automatiquement

##!/bin/bash
# -vx to debug
#on situe le fichier csv
input="/root/2016-employees.csv"
# on set ";" comme séparateurs
# on lis ligne par ligne le fichier csv
#on n'utilise pas la 1ere ligne des noms de colonnes
sed 1d $input | while IFS=';' read -r nameGet firstnameGet serviceGet birthdayGet
do

        #On nettoie les données -> lowercase
        nameGet=${nameGet,,}
        #on prend la 1ere lettre
        nameGet=${nameGet::1}
        firstnameGet=${firstnameGet,,}
        #On prend les 7 1ere lettres
        firstnameGet=${firstnameGet::7}
        serviceGet=${serviceGet,,}
        
        #on fusionne le nom et le prenom dans une variable
        login=$nameGet$firstnameGet

        #On créer l'utilisateurs avec sont répertoire personelle 
        useradd -m -s /bin/bash -p $birthdayGet $login 2> /dev/null
        #on set le mdp pour l'utilisateurs
        echo "$login:$birthdayGet" | chpasswd
        #A la connection l'utilisateur devra changer de mdp
        chage -d 0 $login

        #On créer le groupe
        groupadd $serviceGet 2> /dev/null

        #On assigne l'utilisateur a un groupe
        usermod -a -G $serviceGet $login 2> /dev/null

        #On créer sont repertoire ou il y aura sont site
        mkdir /home/$login/public_html/

        #On copie un fichier d'attente dans sont repertoire de site
        cp /var/www/parking.php /home/$login/public_html/index.php

        #Retour debug
        echo "compte créer : $login avec mdp : $birthdayGet dans groupe : $serviceGet"

# 2> /dev/null
# Permet de rediriger dans un fichier vide
# Cela permet de ne pas afficher d'erreurs au cas ou le groupe ou l'utilisateur est déja créer
done < "$input"

outpout :

root@SLAM:~# ./usercreate.sh 
compte créer : dmohamed avec mdp : 12021969 dans groupe : accounting
compte créer : kmarie avec mdp : 06091970 dans groupe : development
compte créer : esarah avec mdp : 17041993 dans groupe : development
compte créer : spatrick avec mdp : 20051989 dans groupe : network
compte créer : zjean-ja avec mdp : 11111970 dans groupe : network
compte créer : svolker avec mdp : 23121978 dans groupe : network
compte créer : lkatia avec mdp : 15121980 dans groupe : network
compte créer : gdan avec mdp : 03011967 dans groupe : hrd
compte créer : adesiree avec mdp : 07061981 dans groupe : hrd
compte créer : bdietric avec mdp : 12031989 dans groupe : network

Lien d’exemple : http://web6.a104.xilim.org/~kmarie/

affichage du site :

capture-decran-de-2016-10-17-104524

voici le script php qui permet cela :

<?php 

    echo $_SERVER['SERVER_NAME'], "\n" ; 
    echo getcwd() ;

?>

 

 

Et voici le script qui permet d’éffacer tous les utilisateurs et groupe présent dans le fichier csv

#!/bin/bash
# -vx to debug
input="/root/2016-employees.csv"
tail -n +2 $input | while IFS=';' read -r nameGet firstnameGet serviceGet birthdayGet
do

        nameGet=${nameGet,,}
        nameGet=${nameGet::1}
        firstnameGet=${firstnameGet,,}
        firstnameGet=${firstnameGet::7}
        login=$nameGet$firstnameGet
        serviceGet=${serviceGet,,}

        userdel $login 2> /dev/null
        rm -rf /home/$login
        groupdel $serviceGet 2> /dev/null
        
        echo "deleted $login"


done < "$input"

outpout :

root@SLAM:~# ./userdelete.sh 
deleted dmohamed
deleted kmarie
deleted esarah
deleted spatrick
deleted zjean-ja
deleted svolker
deleted lkatia
deleted gdan
deleted adesiree
deleted bdietric