#!/bin/sh ################################################################################# # # SCRIPT DE CREATION DE USERS proFTP # # Ajoute des utilisateurs unix pour la connexion FTP vers un repertoire commun # - lit le fichier user.xml # - ajoute ou met à jour le user avec les infos contenues dans le fichier # ################################################################################# REP_SPOOL="/chemin/du/fichier/xml" FTP_GRP="groupe_user_ftp" FTP_HOME="/repertoire/de/connexion/FTP" FTP_SHELL="/bin/false" FTP_HOST="hoteftp" DATE=$(date +%Y-%m-%d-%H-%M) FILE_LOG="/chemin/du/fichier/log" # recherche des fichiers xml dan le rep spool liste=`find ${REP_SPOOL} -type f -name "*.xml"` [ -z "$liste" ] && exit 0; echo "" > ${FILE_LOG} echo "-------------------------------------------------------------------------" >> ${FILE_LOG} echo ${DATE} >> ${FILE_LOG} echo "-------------------------------------------------------------------------" >> ${FILE_LOG} echo "" >> ${FILE_LOG} # LECTURE DES FICHIERS XML DANS LE REP SPOOL # -------------------------------------------------- // on recupere les informations contenues entre les balises des fichiers xml for fichier in $liste do echo $fichier USR_LOGIN=`sed -n -e 's/ \(.*\)<\/login>/\1/p' $fichier` USR_PASSW=`sed -n -e 's/ \(.*\)<\/password>/\1/p' $fichier` USR_DATEX=`sed -n -e 's/ \(.*\)<\/date_limite>/\1/p' $fichier` echo "login = ${USR_LOGIN}" >> ${FILE_LOG} echo "password = ${USR_PASSW}" >> ${FILE_LOG} echo "date_limite = ${USR_DATEX}" >> ${FILE_LOG} # si le user existe (contenu dans le fichier passxd), on le met à jour, sinon on le crée userok=`grep "${USR_LOGIN}" /etc/passwd` [ -z "$userok" ] && ACTION="insert" && echo "insert" >> ${FILE_LOG} [ -n "$userok" ] && ACTION="update" && echo "update" >> ${FILE_LOG} echo "userok = $userok action=${ACTION}" >> ${FILE_LOG} # AJOUT DU NOUVEL USER # -------------------------------------------------- if [ ${ACTION} = "insert" ] then /usr/sbin/useradd -g ${FTP_GRP} -d ${FTP_HOME} -s ${FTP_SHELL} -e ${USR_DATEX} ${USR_LOGIN} echo $? >> ${FILE_LOG} echo "${USR_LOGIN}:${USR_PASSW}" | /usr/sbin/chpasswd echo $? >> ${FILE_LOG} fi # MODIFICATION D'UN USER EXISTANT # -------------------------------------------------- if [ ${ACTION} = "update" ] then /usr/sbin/usermod -e ${USR_DATEX} ${USR_LOGIN} echo $? >> ${FILE_LOG} echo "${USR_LOGIN}:${USR_PASSW}" | /usr/sbin/chpasswd echo $? >> ${FILE_LOG} fi # FIN TRAITEMENT # on teste la connexion FTP. # on supprime le fichier si c'est ok FILETMP="/chemin/du/fichier/testFTP.txt" ftp -v -n ${FTP_HOST} >> ${FILETMP} <> ${FILE_LOG} rm ${FILETMP} rm -f $fichier else echo "connection FTP KO" >> ${FILE_LOG} fi done