#Suppression de log
#Variables
chemin="/usr/local/openldap/var/openldap-data/"
logfile=`date +%Y-%m-%d-%H-%M-%S`
retention="+8"
date="`date +%Y-%m-%d`"
heure="`date +%H" H "%M" min "%S" sec "`"
recherche='log.00*'
#Script
#Purge répertoire
cd $chemin
echo "Lancemement du script de purge a $heure le $date" >> ${logfile}.purge.trace;
echo " " >> ${logfile}.purge.trace;
echo "Purge du répertoire : $chemin" >> ${logfile}.purge.trace;
echo " " >> ${logfile}.purge.trace;
echo "Taille du répertoire avant purge" >> ${logfile}.purge.trace;
du -sh >> ${logfile}.purge.trace;
echo " " >> ${logfile}.purge.trace;
echo "Les fichiers si dessous on été supprimés :" >> ${logfile}.purge.trace;
echo " " >> ${logfile}.purge.trace;
find $chemin -iname "${recherche}" -ctime $retention -exec rm -f \{\} \; -print >> ${logfile}.purge.trace;
find $chemin -iname "*.purge.trace*" -ctime $retention -exec rm -f \{\} \; -print >> ${logfile}.purge.trace;
echo " " >> ${logfile}.purge.trace;
echo "Taille du répertoire après purge" >> ${logfile}.purge.trace;
#Le script va vérifier la dernière connexion des utilisateurs
#!/bin/bash
#On crée une boucle qui vérifie les utilisateurs
for i in `cat /etc/passwd`
do
#on crée les variables pour les champs nom et uid
nom=`echo $i | cut -d":" -f1`
userid=`echo $i | cut -d":" -f3`
#On teste si l'uid est >= à 1000 :
if [ $userid -ge 1000 2> /dev/null ]
then
echo "Dernière connexion de $nom: `last $nom | cut -c40-75 | head -1`"
fi
done
#Creation des fichiers qui vont contenir les ip en fonction de leur activité
#Scan d'une plage IP
#!/bin/bash
echo "Liste des IP actives : " > ipon
echo "Liste des IP inactives : " > ipoff
#Scan des IP de 1 à 150
for i in `seq 1 255`
do
if (ping -c1 -w1 192.168.20.$i > /dev/null)
then
echo 192.168.20.$i >> ipon
else
echo 192.168.20.$i >> ipoff
fi
done
#On cherche à savoir si l'utilisateur existe sur le système
#!/bin/bash
#grep -q : recherche silencieuse
#grep -w : recherche du nom exact
# ^ : recherche en début de ligne
if (grep -qw ^$1 /etc/passwd)
then
#Si la recherche est OK, on teste s'il est connecté :
echo "$1 existe"
if (who | grep -qw ^$1)
then
echo "$1 est là"
else
echo "$1 est absent"
fi
else
#Si on n'a pas trouvé l'utilisateur
echo "$1 n'existe pas sur ce système"
fi
#Création d'un repertoire
#!/bin/bash
echo "Nom du répertoire à créer ?"
read nom_rep
if mkdir $nom_rep 2> /dev/null
then
echo "création du répertoire $nom_rep réussi"
else
echo "un problème à été rencontré, le dossier existe peut être déjà"
fi
#Other
#!/bin/bash
echo "1 - Afficher la date et l'heure"
echo "2 - Afficher la charge du système"
echo "3 - Afficher la version du système"
echo -n "Votre choix ?"
read choix
case "$choix" in
1)
date
;;
2)
uptime | cut -d "," -f4-6
;;
3)
uname -a | cut -d " " -f1,3,12,13
;;
*)
echo "option incorrecte"
esac
#Quelques scripts utile sous Mysql
#!/bin/sh
# Informations à compléter
pass_mysql_ftp="ftp"
pass_mysql_root="root"
# On vérifie qu'il n'existe pas déjà un autre utilisateur du même nom
if test -d /home/$1 ; then
echo "L'utilisateur existe deja "
else
# On crée les dossiers et on fixe les droits
mkdir /home/$1
mkdir /home/$1/public_html
chown -R www-data.www-data /home/$1
chmod -R 755 /home/$1
mkdir /home/save_USERS/$1
mkdir /home/save_USERS/$1/database
mkdir /home/save_USERS/$1/espace_perso
chown -R www-data.www-data /home/save_USERS/$1
chmod -R 755 /home/save_USERS/$1
# On crée le fichier de configuration pour vsFTPd
echo "anon_world_readable_only=NO" > /etc/vsftpd/$1
echo "local_root=/home/$1" >> /etc/vsftpd/$1
echo "write_enable=YES" >> /etc/vsftpd/$1
echo "anon_upload_enable=YES" >> /etc/vsftpd/$1
echo "anon_mkdir_write_enable=YES" >> /etc/vsftpd/$1
echo "anon_other_write_enable=YES" >> /etc/vsftpd/$1
echo "hide_file=(none)" >> /etc/vsftpd/$1
echo "force_dot_files=YES" >> /etc/vsftpd/$1
sudo chown -R root.root /etc/vsftpd/$1
mkdir /var/spool/vmail/me.insia/$1
maildirmake /var/spool/vmail/me.insia/$1/$1@me.insia
sudo chown -R vmail.vmail /var/spool/vmail/
chmod -R 777 /var/spool/vmail/
# On ajoute l'utilisateur dans la base de données
mysql -u ftp -p"$pass_mysql_ftp" -D ftp -e "INSERT INTO users (name ,first_name, email, pass, type_compte) VALUES ('$1', '$2', '$3', ENCRYPT( '$4' ), '0');"
# On crée une base de données où l'utilisateur est tout-puissant
mysql -u root -p"$pass_mysql_root" -e "CREATE USER '$1'@'localhost' IDENTIFIED BY '$1';GRANT USAGE ON *.* TO '$1'@'localhost' IDENTIFIED BY '$4' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;CREATE DATABASE IF NOT EXISTS $1;GRANT ALL PRIVILEGES ON $1.* TO '$1'@'localhost';"
# On ajoute l'utilisateur dans la base de données postfix
mysql -u postfix -p"postfix" -D postfix -e "INSERT INTO comptes ( name, email , password , quota , etat , imap , pop3 ) VALUES ('$1@me.insia','$1@me.insia', ENCRYPT( '$4' ) , '0', '1', '1', '1');"
mailx -s "BIENVENUE" $1@me.insia < ./scripts/msg_accueil
echo "["$(date +%F-%T)"] [CREATION] du compte de l'utilisateur ["$1"] possedant un compte de type [PRINCIPAL] \n" >> /home/log
fi
#Creation de compte
#!/bin/sh
pass_mysql_ftp="ftp"
pass_mysql_root="root"
# On crée le fichier de configuration pour vsFTPd
echo "anon_world_readable_only=NO" > /etc/vsftpd/$1
echo "local_root=/home/$5" >> /etc/vsftpd/$1
echo "write_enable=YES" >> /etc/vsftpd/$1
echo "anon_upload_enable=YES" >> /etc/vsftpd/$1
echo "anon_mkdir_write_enable=YES" >> /etc/vsftpd/$1
echo "anon_other_write_enable=YES" >> /etc/vsftpd/$1
echo "hide_file=(none)" >> /etc/vsftpd/$1
echo "force_dot_files=YES" >> /etc/vsftpd/$1
sudo chown -R root.root /etc/vsftpd/$1
# On ajoute l'utilisateur dans la base de données
mysql -u ftp -p"$pass_mysql_ftp" -D ftp -e "INSERT INTO users (name ,first_name, email, pass, type_compte) VALUES ('$1', '$2', '$3', ENCRYPT( '$4' ), '1');"
echo "["$(date +%F-%T)"] [CREATION] du compte de l'utilisateur ["$1"] possedant un compte de type [SECONDAIRE] par l'utilisateur d'adresse mail ["$3"] \n" >> /home/log
#Suppression de compte
#!/bin/sh
# Informations à compléter
pass_mysql_ftp="ftp"
pass_mysql_root="root"
# On vérifie qu'il existe
if test -d /home/$2 ; then
# On le supprime de la liste des utilisateurs de vsFTPd
mysql -u ftp -p"$pass_mysql_ftp" -D ftp -e "DELETE FROM users WHERE id_users='$1';"
# On supprime son compte et sa base de donnée MySQL
mysql -u root -p"$pass_mysql_root" -e "DROP USER $2'localhost';DROP DATABASE IF EXISTS $2"
# On le supprime de la liste des utilisateurs de postfix
mysql -u postfix -p"postfix" -D postfix -e "DELETE FROM comptes WHERE name='$1@me.insia';"
# On supprime son fichier de configuration vsFTPd
rm -fr /etc/vsftpd/$2
# On supprime son dossier
rm -fr /home/$2
rm -fr /home/save_USERS/$2
rm -fr /var/spool/vmail/me.insia/$2
echo "["$(date +%F-%T)"] [SUPPRESSION] du compte de type [PRINCIPAL] de l'utlisateur ["$2"] \n" >> /home/log
else
echo "L'utilisateur n'existe pas"
fi
#Backup DB mysql
#!/bin/sh
mysqldump --user="$1" --password="$2" $1 > /home/save_USERS/$1/database/$(date +%F-%T)_DATABASE_$1.sql
# On ajoute l'utilisateur dans la base de données
mysql --user="ftp" --password="ftp" -D ftp -e "INSERT INTO sauvegarde_DB (id_users, save_DB) VALUES ('$3', '$(date +%F-%T)_DATABASE_$1.sql');"
echo "["$(date +%F-%T)"] [SAUVEGARDE] de la base de donnees de l'utilisateur ["$1"] sous le nom de ["$(date +%F-%T)_DATABASE_$1.sql"] \n" >> /home/log
#Restauration DB mysql
#!/bin/sh
mysql --user="$1" --password="$2" $1 < /home/save_USERS/$1/database/$3
echo "["$(date +%F-%T)"] [RESTAURATION] de la sauvegarde de base de donnees ["$3"] de l'utilisateur ["$1"] \n" >> /home/log
#Vérification de connectivité d’une machine distante avant d’effectuer un traitement à distance
#!/bin/bash
declare -a HOSTS=(
« <Nom Host> »
)CONF_HOSTS= »OK »
for HOST in ${HOSTS[*]};
do
#Test de connectivité ssh :
#echo « ssh root@ »$HOST »… »
ssh root@ »$HOST » « ls / » 1>/dev/null 2>&1 || { echo « (EE) Impossible de se connecter à \ » »$HOSTS »\ » » && CONF_HOSTS= »KO »; }
T=0
for ALL_HOSTS in ${HOSTS[*]};do
if [ "$HOST" = "$ALL_HOSTS" ];then T=$(($T+1));fi
done
if [ $T -gt 1 ];then
echo « (EE) La machine \ » »$HOSTS »\ » est mentionnée $T fois dans la variable \ »HOSTS\ ». »
CONF_HOSTS= »KO »
fiif [ "$CONF_HOSTS" != "OK" ];then echo « (EE) Abandon. » && exit 1;fi
#Vérification de connectivité d’une machine distante avant d’effectuer un traitement à distance
#!/bin/bash
declare -a HOSTS=(
« <Nom Host> »
)CONF_HOSTS= »OK »
for HOST in ${HOSTS[*]};
do
#Test de connectivité ssh :
#echo « ssh root@ »$HOST »… »
ssh root@ »$HOST » « ls / » 1>/dev/null 2>&1 || { echo « (EE) Impossible de se connecter à \ » »$HOSTS »\ » » && CONF_HOSTS= »KO »; }
T=0
for ALL_HOSTS in ${HOSTS[*]};do
if [ "$HOST" = "$ALL_HOSTS" ];then T=$(($T+1));fi
done
if [ $T -gt 1 ];then
echo « (EE) La machine \ » »$HOSTS »\ » est mentionnée $T fois dans la variable \ »HOSTS\ ». »
CONF_HOSTS= »KO »
fiif [ "$CONF_HOSTS" != "OK" ];then echo « (EE) Abandon. » && exit 1;fi
Aucun commentaire:
Enregistrer un commentaire