Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- defaultPassword=3LywrM7vetirI #licenceAGSRI
- cronDeny=/etc/cron.deny
- cronAllow=/etc/cron.allow
- crontabs=/var/spool/cron/crontabs
- passwd=/etc/passwd
- usertoto=toto
- rep=/tmp/totoCron
- flag=0 #verification basic
- cronflag=0 #Vérification pour les standars de CRON peut prendre la valeur 0,1 ou 2 pour savoir la presence des ficheir cron.allow, cron.deny
- listeUser=()
- listeUserDeny=()
- listeUserFromDeny=()
- uidMin=1000 #UID minimal pour identifier un utilisateur "normal"
- uidMax=9999 #UID maximal pour identifier un utilisateur "normal"
- #Pour exécuter ce script vous devez être superUSer
- if [ $UID -ne 0 ]; then
- echo "Vous devez avoir les privilèges du super utilisateur"
- exit 1
- else :
- fi
- #Vérification de l'éxistence du fichier totoCron dans le repertoire /tmp/
- if [ -f $rep ]; then :
- else
- echo "Création du fichier $rep"
- touch $rep
- if [ $? -eq 0 ]; then :
- else
- echo "Impossible de créer le repertoire $rep"
- exit 1
- fi
- fi
- #Vérification de l'éxistence du fichier passwd dans le repertoire /etc/
- if [ -f $passwd ]; then :
- else
- echo "Le fichier $passwd est absent"
- exit 1
- fi
- #Vérification des droit de l'ecture sur le fihier passwd
- if [ -r $passwd ]; then :
- else
- echo "Le fichier $passwd n'est pas accessible en lecture"
- exit 1
- fi
- #Vérification de l'existence de l'utilisateur toto sur le système
- while read line
- do
- user=`echo ${line} | cut -f 1 -d ':'`
- if [ $user = $usertoto ]; then
- flag=0
- else :
- fi
- done < $passwd
- #Si l'utilisateur toto n'est pas trouvé alors on le créé sinon on passe à l'étape suivante
- if [ $flag -ne "0" ]
- then
- `useradd --home /home/$usertoto --create-home --password $defaultPassword $usertoto 2>/dev/null`
- if [ $? -eq 0 ]
- then
- echo "L'utilisateur $usertoto a été créé avec succes"
- flag=1
- else
- echo "Erreur lors de la création de l'utilisateur $usertoto"
- fi
- else
- echo "[DEBUG] L'utilisateur $usertoto est déjà enregistré dans le système"
- fi
- if [ -f $cronAllow ]
- then
- cronflag=1
- echo "[DEBUG] Le fichier $cronAllow existe"
- else
- cronflag=0
- echo "[DEBUG] Le fichier $cronAllow n'éxiste pas"
- fi
- if [ -f $cronDeny ]
- then :
- else
- echo "[DEBUG] Le fichier $cronDeny n'éxiste pas"
- fi
- if [ -f $cronDeny ] && [ $cronflag -eq "0" ]
- then
- cronflag=2
- echo "[DEBUG] le fichier $cronAllow n'existe pas mais le fichier $cronDeny existe"
- else :
- fi
- if [ $cronflag -eq "0" ]
- then
- echo "[DEBUG] Seul l'utilisateur root peut utiliser le service cron"
- exit 0
- else:
- fi
- #Vérification de la présence de toto dans le fichier /etc/cron.allow
- if [ $cronflag -eq "1" ]
- then
- while read line
- do
- user=${line}
- if [ $user = $usertoto ]; then
- flag=0
- else
- flag=1
- fi
- done < $cronAllow
- if [ $flag -eq "0" ]
- then
- sed -i -e "s/^$usertoto/ /g" $cronAllow
- sed -i -e "/ /d" $cronAllow
- echo "[DEBUG] L'utilisateur $usertoto ne peux plus utiliser le service cron"
- else :
- echo "[DEBUG] L'utilisateur $usertoto n'est pas autorisé à utiliser le service cron"
- fi
- else
- while read line
- do
- user=${line}
- if [ $user = $usertoto ]; then
- flag=0
- else
- flag=1
- fi
- done <$cronDeny
- if [ $flag -ne "0" ]
- then
- sed -i -e "s/^$usertoto/ /g" $cronDeny
- sed -i -e "/ /d" $cronDeny
- echo "[DEBUG] L'utilisateur $usertoto ne peux plus utiliser le service cron"
- else
- echo "[DEBUG] L'utilisateur $usertoto est deny du service cron"
- fi
- fi
- while read line
- do
- uidUser=`echo ${line} | cut -f 3 -d ":"`
- user=`echo ${line} | cut -f 1 -d ":"`
- if [ $uidUser -gt "999" ]
- then
- user=`echo ${line} | cut -f 1 -d ":"`
- listeUser+=($user)
- else :
- fi
- done < $passwd
- echo ""
- echo "###[DEBUG] Liste des utilisateurs qui peuvent se connecter ###"
- i=0
- while [ $i -lt ${#listeUser[@]} ]
- do
- echo ${listeUser[$i]}
- i=$[$i+1]
- done
- echo ""
- echo "###[DEBUG] Les utilisateurs en vert peuvent peuvent utiliser le service cron ###"
- if [ $cronflag -eq "1" ]
- then
- while read line
- do
- userFromAllow=${line}
- listeUserFromAllow+=($userFromAllow)
- done < $cronAllow
- i=0
- j=0
- flag=0
- T=${#listeUserFromAllow[@]} #problème avec le caractère d'échapement
- T=$[$T-1]
- while [ $i -lt ${#listeUser[@]} ]
- do
- j=0
- while [ $j -lt ${#listeUserFromAllow[@]} ]
- do
- if [ "${listeUser[$i]}" == "${listeUserFromAllow[$j]}" ] && [ "$j" == "$T" ]
- then
- echo -e "\e[0;32m ${listeUser[$i]}"
- elif [ "${listeUser[$i]}" == "${listeUserFromAllow[$j]}" ] && [ "$j" != $T ]
- then
- flag=1
- elif [ "${listeUser[$i]}" != "${line}" ] && [ "$j" == $T ] && [ "$flag" == "0" ]
- then :
- echo -e "\e[0;31m ${listeUser[$i]}"
- listeUserDeny+=(${listeUser[$i]})
- elif [ "${listeUser[$i]}" != "${line}" ] && [ "$j" == $T ] && [ "$flag" == "1" ]
- then
- echo -e "\e[0;32m ${listeUser[$i]}"
- flag=0
- else :
- fi
- j=$[$j+1]
- done
- i=$[$i+1]
- done
- else
- while read line
- do
- userFromDeny=${line}
- listeUserFromDeny+=($userFromDeny)
- done < $cronDeny
- #echo "[DEBUG] ${#listeUser[@]}"
- #echo "[DEBUG] ${#listeUserFromDeny[@]}"
- #i=0
- #while [ $i -lt ${#listeUserFromDeny[@]} ]
- #do
- # echo ${listeUserFromDeny[$i]}
- # i=$[$i+1]
- #done
- i=0
- j=0
- flag=0
- T=${#listeUserFromDeny[@]} #problème avec le caractère d'échapement
- T=$[$T-1]
- while [ "$i" -lt "${#listeUser[@]}" ]
- do
- #echo "[DEBUG] User$i = ${listeUser[$i]}
- j=0
- while [ "$j" -lt "${#listeUserFromDeny[@]}" ]
- do
- if [ "${listeUser[$i]}" != "${listeUserFromDeny[$j]}" ] && [ "$j" == "$T" ] && [ "$flag" == "0" ]
- then
- echo -e "\e[0;32m ${listeUser[$i]}"
- elif [ "${listeUser[$i]}" == "${listeUserFromDeny[$j]}" ] && [ "$j" == "$T" ]
- then
- echo -e "\e[0;31m ${listeUser[$i]}"
- listeUserDeny+=(${listeUser[$i]})
- elif [ "${listeUser[$i]}" == "${listeUserFromDeny[$j]}" ] && [ "$j" != "$T" ]
- then
- echo -e "\e[0;31m ${listeUser[$i]}"
- listeUserDeny+=(${listeUser[$i]})
- flag=1
- elif [ $flag == "1" ] && [ "$j" == "$T" ]
- then
- flag=0
- else :
- fi
- j=$[$j+1]
- #i=0
- #while [ $i -lt ${#listeUserFromDeny[@]} ]
- #do
- # echo ${listeUserFromDeny[$i]}
- # i=$[$i+1]
- #done
- done
- i=$[$i+1]
- done
- fi
- echo ""
- if [ -d $crontabs ]; then :
- else
- echo "[DEBUG] Aucune crontabs de définie"
- exit 0
- fi
- i=0
- while [ $i -lt ${#listeUserDeny[@]} ]
- do
- ls $crontabs | grep ${listeUserDeny[$i]} > /dev/null
- if [ $? -eq 0 ]
- then
- echo "[DEBUG] Attention il existe des contabs pour l'utilisateur ${listeUserDeny[$i]}"
- echo "[DEBUG] Les crontabs de ${listeUserDeny[$i]} sont supprimer"
- sup=$crontabs
- sup+="/${listeUserDeny[$i]}"
- rm $sup
- sup=""
- else
- echo "[DEBUG] Il n'y a pas de crontabs pour l'utilisateur ${listeUserDeny[$i]}"
- fi
- i=$[$i+1]
- done
- exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement