« Contrôle parental » : différence entre les versions

Aller à la navigation Aller à la recherche
8 961 octets ajoutés ,  il y a 12 ans
up version 3.10
mAucun résumé des modifications
(up version 3.10)
Ligne 2 : Ligne 2 :


<code bash>
<code bash>
#!/bin/bash
#!/bin/bash  
 
# CTparental.sh
# CTparental.sh
#
#
Ligne 11 : Ligne 10 :


# This script is distributed under the Gnu General Public License (GPL)
# This script is distributed under the Gnu General Public License (GPL)
if [ ! $UID -eq 0 ]; then
#if [ ! $UID -eq 0 ]; then
  echo "Il vous faut les droit root pour lancer ce scripte"
echo "Il vous faut les droit root pour lancer ce scripte"
  exit 1
exit 1
fi
#fi
args=${1}
args=${1}
SED="/bin/sed -i"
SED="/bin/sed -i"
DIR_CONF="/usr/local/etc/CTparental"
DIR_CONF="/usr/local/etc/CTparental"
FILE_CONF="$DIR_CONF/CTparental.conf"
FILE_HCONF="$DIR_CONF/CThours.conf";
if [ ! -f $FILE_CONF ] ; then
mkdir -p $DIR_CONF
cat << EOF > $FILE_CONF
LASTUPDATE=0
DNSMASQ=BLACK
AUTOUPDATE=OFF
HOURSCONNECT=OFF
EOF
fi
tempDIR="/tmp/alcasar"
tempDIR="/tmp/alcasar"
RougeD="\033[1;31m"
RougeD="\033[1;31m"
Ligne 44 : Ligne 56 :
RESOLVCONFORDER="$RESOLVCONFMAIN/interface-order"
RESOLVCONFORDER="$RESOLVCONFMAIN/interface-order"
DIRHTML="/var/www/CTparental"
DIRHTML="/var/www/CTparental"
DIRadminHTML="/var/www/CTadmin"
namservicednsmaq="dnsmasq"
namservicednsmaq="dnsmasq"
namservicehttpd="lighttpd"
namservicehttpd="lighttpd"
namservicecrond="cron"
namservicecrond="cron"
PASSWORDFILEHTTPD="/etc/lighttpd/lighttpd-htdigest.user"
REALMADMINHTTPD="interface admin"
CMDINSTALL=""
CMDINSTALL=""
yum help 2&> /dev/null
yum help 2&> /dev/null
Ligne 53 : Ligne 68 :
   CMDINSTALL="yum install "
   CMDINSTALL="yum install "
   CMDREMOVE="yum remove "
   CMDREMOVE="yum remove "
  yum info openresolv 2&> /dev/null
  if [ $? -eq 0 ] ; then
paquetresolv="openresolv"
  else
        paquetresolv="resolvconf"
  fi
fi
fi
urpmi --help 2&> /dev/null
urpmi --help 2&> /dev/null
Ligne 60 : Ligne 81 :
   CMDREMOVE="urpme --auto "
   CMDREMOVE="urpme --auto "
   namservicecrond="crond"
   namservicecrond="crond"
  paquetresolv="openresolv"
fi
fi
apt-get -h 2&> /dev/null
apt-get -h 2&> /dev/null
Ligne 66 : Ligne 88 :
   CMDINSTALL="apt-get -y --force-yes install "
   CMDINSTALL="apt-get -y --force-yes install "
   CMDREMOVE="apt-get -y --force-yes remove --purge "
   CMDREMOVE="apt-get -y --force-yes remove --purge "
  paquetresolv="resolvconf" # pour compatibiliter debian 6
fi
fi
if [ $args="-i" ] ; then
if [ $args="-i" ] ; then
Ligne 79 : Ligne 102 :
   exit 1
   exit 1
fi
fi




Ligne 102 : Ligne 126 :
DNS_FILTER_OSSI="$DIR_CONF/blackliste-local"
DNS_FILTER_OSSI="$DIR_CONF/blackliste-local"
DREAB="$DIR_CONF/domaine-rehabiliter"  
DREAB="$DIR_CONF/domaine-rehabiliter"  
LASTUPDATE="$DIR_CONF/last-update"
THISDAYS=$(expr $(date +%Y) \* 365 + $(date +%j))
THISDAYS=$(expr $(date +%Y) \* 365 + $(date +%j))
MAXDAYSFORUPDATE="7" # update tous les 7 jours
MAXDAYSFORUPDATE="7" # update tous les 7 jours
Ligne 130 : Ligne 153 :
          
          


}
addadminhttpd() {
if [ ! -f $PASSWORDFILEHTTPD ] ; then
    echo -n > $PASSWORDFILEHTTPD 
fi
chown root:$USERHTTPD $PASSWORDFILEHTTPD
chmod 640 $PASSWORDFILEHTTPD
USERADMINHTTPD=${1}
pass=${2}
hash=`echo -n "$USERADMINHTTPD:$REALMADMINHTTPD:$pass" | md5sum | cut -b -32`
ligne=$(echo "$USERADMINHTTPD:$REALMADMINHTTPD:$hash")
$SED "/^$USERADMINHTTPD:$REALMADMINHTTPD.*/d" $PASSWORDFILEHTTPD
echo $ligne >> $PASSWORDFILEHTTPD
}
}


download() {
download() {
  rm -rf $tempDIR
  mkdir $tempDIR
   wget -P $tempDIR http://$BL_SERVER/blacklists/download/blacklists.tar.gz 2>&1 | cat
   wget -P $tempDIR http://$BL_SERVER/blacklists/download/blacklists.tar.gz 2>&1 | cat
   if [ ! $? -eq 0 ]; then
   if [ ! $? -eq 0 ]; then
Ligne 148 : Ligne 187 :
}
}
autoupdate() {
autoupdate() {
LASTUPDATEDAY=`sed -n "1 p" $LASTUPDATE`
        LASTUPDATEDAY=`grep LASTUPDATE= $FILE_CONF | cut -d"=" -f2`
        LASTUPDATEDAY=${LASTUPDATEDAY:=0}
         DIFFDAY=$(expr $THISDAYS - $LASTUPDATEDAY)
         DIFFDAY=$(expr $THISDAYS - $LASTUPDATEDAY)
if [ $DIFFDAY -ge $MAXDAYSFORUPDATE ] ; then
if [ $DIFFDAY -ge $MAXDAYSFORUPDATE ] ; then
Ligne 155 : Ligne 195 :
catChoice
catChoice
dnsmasqon
dnsmasqon
                $SED "s?^LASTUPDATE.*?LASTUPDATE=$THISDAYS=`date +%d-%m-%Y\ %T`?g" $FILE_CONF
exit 0
exit 0
fi
fi
echo $THISDAYS > $LASTUPDATE
}
}
autoupdateon() {
autoupdateon() {
echo $THISDAYS > $LASTUPDATE
$SED "s?^AUTOUPDATE.*?AUTOUPDATE=ON?g" $FILE_CONF
echo "*/10 * * * * root $CHEMINCTPARENTLE -aup" > /etc/cron.d/CTparental-autoupdate
echo "*/10 * * * * root $CHEMINCTPARENTLE -aup" > /etc/cron.d/CTparental-autoupdate
$CMDSERVICE$namservicecrond restart
$CMDSERVICE$namservicecrond restart
Ligne 167 : Ligne 206 :


autoupdateoff() {
autoupdateoff() {
$SED "s?^AUTOUPDATE.*?AUTOUPDATE=OFF?g" $FILE_CONF
rm -f /etc/cron.d/CTparental-autoupdate
rm -f /etc/cron.d/CTparental-autoupdate
$CMDSERVICE$namservicecrond restart
$CMDSERVICE$namservicecrond restart
Ligne 278 : Ligne 318 :
done
done
echo -n "."
echo -n "."
cat $DREAB | sed -e "s?.*?server=/&/#?g" >  $DIR_DNS_WHITELIST_ENABLED/whiteliste.ossi.conf
cat $DREAB | sed -e "s? ??g" | sed -e "s?.*?server=/&/#?g" >  $DIR_DNS_WHITELIST_ENABLED/whiteliste.ossi.conf
echo
echo
}
}
Ligne 286 : Ligne 326 :
   is_blacklist=`grep $categorie1 $BL_CATEGORIES_AVAILABLE |wc -l`
   is_blacklist=`grep $categorie1 $BL_CATEGORIES_AVAILABLE |wc -l`
   if [ $is_blacklist -ge "1" ] ; then
   if [ $is_blacklist -ge "1" ] ; then
  $SED "s?^DNSMASQ.*?DNSMASQ=BLACK?g" $FILE_CONF
   cat << EOF > $DNSMASQCONF
   cat << EOF > $DNSMASQCONF
         # Configuration file for "dnsmasq with blackhole"
         # Configuration file for "dnsmasq with blackhole"
Ligne 307 : Ligne 348 :
}
}
dnsmasqoff () {
dnsmasqoff () {
  $SED "s?^DNSMASQ.*?DNSMASQ=OFF?g" $FILE_CONF
   cat << EOF > $DNSMASQCONF
   cat << EOF > $DNSMASQCONF
         # Configuration file for "dnsmasq with blackhole"
         # Configuration file for "dnsmasq with blackhole"
Ligne 326 : Ligne 368 :
}
}
dnsmasqwhitelistonly  () {
dnsmasqwhitelistonly  () {
  $SED "s?^DNSMASQ.*?DNSMASQ=WHITE?g" $FILE_CONF
   cat << EOF > $DNSMASQCONF
   cat << EOF > $DNSMASQCONF
         # Configuration file for "dnsmasq with blackhole"
         # Configuration file for "dnsmasq with blackhole"
Ligne 434 : Ligne 477 :
USERHTTPD=$(cat /etc/passwd | grep /var/www | cut -d":" -f1)
USERHTTPD=$(cat /etc/passwd | grep /var/www | cut -d":" -f1)
GROUPHTTPD=$(cat /etc/group | grep $USERHTTPD | cut -d":" -f1)
GROUPHTTPD=$(cat /etc/group | grep $USERHTTPD | cut -d":" -f1)
cat << EOF > $MAINCONFHTTPD
cat << EOF > $MAINCONFHTTPD
server.modules = (
server.modules = (
Ligne 439 : Ligne 483 :
"mod_alias",
"mod_alias",
"mod_redirect",
"mod_redirect",
"mod_auth", #pour insteface admin
"mod_fastcgi",  #pour insteface admin (activation du php)
# "mod_rewrite",
# "mod_rewrite",
)
)
auth.debug                = 0
auth.backend              = "htdigest"
auth.backend.htdigest.userfile = "$PASSWORDFILEHTTPD"
server.document-root = "/var/www"
server.document-root = "/var/www"
server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
Ligne 453 : Ligne 503 :
index-file.names = ( "index.php", "index.html" )
index-file.names = ( "index.php", "index.html" )
url.access-deny = ( "~", ".inc" )
url.access-deny = ( "~", ".inc" )
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
static-file.exclude-extensions = (".php", ".pl", ".fcgi" )


compress.cache-dir = "/var/cache/lighttpd/compress/"
compress.cache-dir = "/var/cache/lighttpd/compress/"
Ligne 516 : Ligne 566 :


mkdir -p $DIRCONFENABLEDHTTPD
mkdir -p $DIRCONFENABLEDHTTPD
mkdir -p $DIRadminHTML
cp -rf CTadmin/* $DIRadminHTML/
clear
echo "Entrer le login pour l'interface d'administration :"
while (true); do
read loginhttp
case $loginhttp in
* )
echo "login:  $loginhttp" > /root/passwordCTadmin
break
;;
        esac
      done
clear
      echo "Entrer le mot de $loginhttp :"
      while (true); do
read password
case $password in
* )
echo "password: $password" >> /root/passwordCTadmin
                addadminhttpd "$loginhttp" "$password"
break
;;
        esac
      done
chmod 700 /root/passwordCTadmin
chown root:root /root/passwordCTadmin
cat << EOF > $CTPARENTALCONFHTTPD
cat << EOF > $CTPARENTALCONFHTTPD


fastcgi.server = (
    ".php" => (
      "localhost" => (
        "bin-path" => "/usr/bin/php-cgi",
        "socket" => "/run/lighttpd/php-fastcgi.sock",
        "max-procs" => 4, # default value
        "bin-environment" => (
          "PHP_FCGI_CHILDREN" => "1", # default value
        ),
        "broken-scriptfilename" => "enable"
      ))
)
  fastcgi.map-extensions    = ( ".php3" => ".php",
                              ".php4" => ".php",
                              ".php5" => ".php",
                              ".phps" => ".php",
                              ".phtml" => ".php" )
\$HTTP["url"] =~ ".*CTadmin.*" {
  auth.require = ( "" =>
                  (
                    "method"  => "digest",
                    "realm"  => "$REALMADMINHTTPD",
                    "require" => "user=$USERADMINHTTPD"
                  )
                )
}
\$SERVER["socket"] == "$PRIVATE_IP:80" {
\$SERVER["socket"] == "$PRIVATE_IP:80" {
server.document-root = "$DIRHTML"
server.document-root = "$DIRHTML"
Ligne 526 : Ligne 631 :


EOF
EOF
 
chown root:$GROUPHTTPD $DREAB
chmod 660 $DREAB
chown root:$GROUPHTTPD $DNS_FILTER_OSSI
chmod 660 $DNS_FILTER_OSSI
chown root:$GROUPHTTPD $CATEGORIES_ENABLED
chmod 660 $CATEGORIES_ENABLED
chmod 660 /etc/sudoers
is_sudo_ok=`grep $USERHTTPD /etc/sudoers |wc -l`
        if [ $is_sudo_ok -ge "1" ] ; then
$SED "s?^$USERHTTPD.*?$USERHTTPD ALL=(ALL) NOPASSWD:/usr/local/bin/CTparental.sh -tlu,/usr/local/bin/CTparental.sh -trf,/usr/local/bin/CTparental.sh -dble,/usr/local/bin/CTparental.sh -ubl,/usr/local/bin/CTparental.sh -dl,/usr/local/bin/CTparental.sh -on,/usr/local/bin/CTparental.sh -off,/usr/local/bin/CTparental.sh -aupon,/usr/local/bin/CTparental.sh -aupoff?g" /etc/sudoers
        else
        echo "$USERHTTPD ALL=(ALL) NOPASSWD:/usr/local/bin/CTparental.sh -tlu,/usr/local/bin/CTparental.sh -trf,/usr/local/bin/CTparental.sh -dble,/usr/local/bin/CTparental.sh -ubl,/usr/local/bin/CTparental.sh -dl,/usr/local/bin/CTparental.sh -on,/usr/local/bin/CTparental.sh -off,/usr/local/bin/CTparental.sh -aupon,/usr/local/bin/CTparental.sh -aupoff" >> /etc/sudoers
        fi
chmod 440 /etc/sudoers
if [ ! -f $FILE_HCONF ] ; then
echo > $FILE_HCONF
fi
chown root:$GROUPHTTPD $FILE_HCONF
chmod 660 $FILE_HCONF
$CMDSERVICE$namservicehttpd start
$CMDSERVICE$namservicehttpd start
}
}
Ligne 542 : Ligne 665 :
       $CMDINSTALL dnsmasq
       $CMDINSTALL dnsmasq
       $CMDINSTALL lighttpd
       $CMDINSTALL lighttpd
      $CMDINSTALL php5-cgi
       if [ ! -f blacklists.tar.gz ]
       if [ ! -f blacklists.tar.gz ]
       then
       then
Ligne 557 : Ligne 681 :
       catChoice
       catChoice
       dnsmasqon
       dnsmasqon
       $CMDINSTALL resolvconf
      $SED "s?^LASTUPDATE.*?LASTUPDATE=$THISDAYS=`date +%d-%m-%Y\ %T`?g" $FILE_CONF
       $CMDINSTALL $paquetresolv
       confresolvconf
       confresolvconf


Ligne 604 : Ligne 729 :
   rm -rf /usr/share/lighttpd/*
   rm -rf /usr/share/lighttpd/*
   rm -f $CTPARENTALCONFHTTPD
   rm -f $CTPARENTALCONFHTTPD
  rm -rf $DIRadminHTML
   rm -f $RESOLVDNSMASQ
   rm -f $RESOLVDNSMASQ
   resolvconf -u
   resolvconf -u
Ligne 609 : Ligne 735 :
   $CMDREMOVE lighttpd
   $CMDREMOVE lighttpd
   $CMDREMOVE dnsmasq  
   $CMDREMOVE dnsmasq  
   $CMDREMOVE resolvconf
   $CMDREMOVE $paquetresolv
}
}


Ligne 708 : Ligne 834 :
       echo "Aucun gestionner de session connu , n'a été détecté."
       echo "Aucun gestionner de session connu , n'a été détecté."
       echo " il est donc impossible d'activer le controle horaires des connections"
       echo " il est donc impossible d'activer le controle horaires des connections"
      desactivetimelogin
       exit 1
       exit 1
   fi
   fi
Ligne 719 : Ligne 846 :
   echo  > /etc/cron.d/CTparental${DAYS[$NumDAY]}
   echo  > /etc/cron.d/CTparental${DAYS[$NumDAY]}
   done
   done
   for PCUSER in `cat /etc/passwd | cut -d":" -f1,3| grep -E [1-9][0-9][0-9][0-9]| grep -v 65534 | cut -d ":" -f1`
   for PCUSER in `cat /etc/passwd | cut -d":" -f1,3| grep -E [1-9][0-9][0-9][0-9] | cut -d ":" -f1`
   do
   do
   echo $PCUSER
  $SED "/^$PCUSER=/d" $FILE_HCONF
   echo -e -n "$PCUSER est autoriser a ce connecter 7j/7 24h/24 O/N?"
  choi=""
  while (true); do
  read choi
        case $choi in
        O | o )
alltime="O"
  break
        ;;
N| n )
        alltime="N"
  break
        ;;
  esac
  done
       HORAIRES=""
       HORAIRES=""
       for NumDAY in 0 1 2 3 4 5 6
       for NumDAY in 0 1 2 3 4 5 6
         do
         do
if [$alltime = "O"];then
echo "*;*;$PCUSER;Al0000-2400" >> $FILEPAMTIMECONF
echo "$PCUSER=admin=" >> $FILE_HCONF
break
else
echo "$PCUSER=user=" >> $FILE_HCONF
fi
         clear
         clear
         echo "exemple: 08h00 a 24h00 ou 08h00 a 12h00 et 14h00 a 24h00"
         echo "exemple: 00h00 a 23h59 ou 08h00 a 12h00 et 14h00 a 16h50"
         echo -e -n "$RougeD$PCUSER$Fcolor est autorisés à se connecter le $BleuD${DAYS[$NumDAY]}$Fcolor de:"
         echo -e -n "$RougeD$PCUSER$Fcolor est autorisés à se connecter le $BleuD${DAYS[$NumDAY]}$Fcolor de:"
         while (true); do
         while (true); do
Ligne 740 : Ligne 890 :
                     if [ ! $(echo $choi | grep -E -c ":") -eq 1 ] ; then
                     if [ ! $(echo $choi | grep -E -c ":") -eq 1 ] ; then
                         if [ $NumDAY -eq 6 ] ; then
                         if [ $NumDAY -eq 6 ] ; then
                           HORAIRESPAM=$HORAIRESPAM${DAYSPAM[$NumDAY]}$int1\-$int2
                           HORAIRESPAM="$HORAIRESPAM${DAYSPAM[$NumDAY]}$int1-$int2"
                         else
                         else
                           HORAIRESPAM=$HORAIRESPAM${DAYSPAM[$NumDAY]}$int1\-$int2\|
                           HORAIRESPAM="$HORAIRESPAM${DAYSPAM[$NumDAY]}$int1-$int2|"
                         fi
                         fi
                         MINUTES1=$(echo $int2 | sed -e 's/.\{02\}//')
                         MINUTES1=$(echo $int1 | sed -e 's/.\{02\}//')
                         HEURES1=$(echo $int2 | sed -e 's/.\{02\}$//')   
                        HEURES1=$(echo $int1 | sed -e 's/.\{02\}$//')
                         echo "$MINUTES1 $HEURES1 * * ${DAYSCRON[$NumDAY]} root /usr/bin/skill -KILL -u$PCUSER" >> /etc/cron.d/CTparental${DAYS[$NumDAY]}
                        MINUTES2=$(echo $int2 | sed -e 's/.\{02\}//')
                         HEURES2=$(echo $int2 | sed -e 's/.\{02\}$//')
echo "$PCUSER=$NumDAY=$HEURES1\h$MINUTES1\:$HEURES2\h$MINUTES2" >> $FILE_HCONF    
                         echo "$MINUTES2 $HEURES2 * * ${DAYSCRON[$NumDAY]} root /usr/bin/skill -KILL -u$PCUSER" >> /etc/cron.d/CTparental${DAYS[$NumDAY]}
                         break
                         break
    
    
Ligne 753 : Ligne 906 :
                           if [ $int3 -lt $int4 ];then
                           if [ $int3 -lt $int4 ];then
                               if [ $NumDAY -eq 6 ] ; then
                               if [ $NumDAY -eq 6 ] ; then
                                 HORAIRESPAM=$HORAIRESPAM${DAYSPAM[$NumDAY]}$int1\-$int2\|${DAYSPAM[$NumDAY]}$int3\-$int4
                                 HORAIRESPAM="$HORAIRESPAM${DAYSPAM[$NumDAY]}$int1-$int2|${DAYSPAM[$NumDAY]}$int3-$int4"
                               else
                               else
                                 HORAIRESPAM=$HORAIRESPAM${DAYSPAM[$NumDAY]}$int1\-$int2\|${DAYSPAM[$NumDAY]}$int3\-$int4\|
                                 HORAIRESPAM="$HORAIRESPAM${DAYSPAM[$NumDAY]}$int1-$int2|${DAYSPAM[$NumDAY]}$int3-$int4|"
                               fi
                               fi
                               MINUTES1=$(echo $int2 | sed -e 's/.\{02\}//')
                               MINUTES1=$(echo $int1 | sed -e 's/.\{02\}//')
                               HEURES1=$(echo $int2 | sed -e 's/.\{02\}$//')   
                              HEURES1=$(echo $int1 | sed -e 's/.\{02\}$//') 
                               MINUTES2=$(echo $int4 | sed -e 's/.\{02\}//')
                              MINUTES2=$(echo $int2 | sed -e 's/.\{02\}//')
                               HEURES2=$(echo $int4 | sed -e 's/.\{02\}$//')   
                               HEURES2=$(echo $int2 | sed -e 's/.\{02\}$//') 
                              MINUTES3=$(echo $int3 | sed -e 's/.\{02\}//')
                              HEURES3=$(echo $int3 | sed -e 's/.\{02\}$//')   
                               MINUTES4=$(echo $int4 | sed -e 's/.\{02\}//')
                               HEURES4=$(echo $int4 | sed -e 's/.\{02\}$//')   
                               ## minutes heures jourdumoi moi jourdelasemaine utilisateur  commande
                               ## minutes heures jourdumoi moi jourdelasemaine utilisateur  commande
 
      echo "$PCUSER=$NumDAY=$HEURES1\h$MINUTES1\:$HEURES2\h$MINUTES2:$HEURES3\h$MINUTES3\:$HEURES4\h$MINUTES4" >> $FILE_HCONF
                              echo "$MINUTES1 $HEURES1 * * ${DAYSCRON[$NumDAY]} root /usr/bin/skill -KILL -u$PCUSER" >> /etc/cron.d/CTparental${DAYS[$NumDAY]}
                               echo "$MINUTES2 $HEURES2 * * ${DAYSCRON[$NumDAY]} root /usr/bin/skill -KILL -u$PCUSER" >> /etc/cron.d/CTparental${DAYS[$NumDAY]}
                               echo "$MINUTES2 $HEURES2 * * ${DAYSCRON[$NumDAY]} root /usr/bin/skill -KILL -u$PCUSER" >> /etc/cron.d/CTparental${DAYS[$NumDAY]}
                              echo "$MINUTES4 $HEURES4 * * ${DAYSCRON[$NumDAY]} root /usr/bin/skill -KILL -u$PCUSER" >> /etc/cron.d/CTparental${DAYS[$NumDAY]}
                               break   
                               break   
                           else
                           else
Ligne 788 : Ligne 945 :
       echo "*;*;$PCUSER;$HORAIRESPAM" >> $FILEPAMTIMECONF
       echo "*;*;$PCUSER;$HORAIRESPAM" >> $FILEPAMTIMECONF
   done
   done
 
   for NumDAY in 0 1 2 3 4 5 6
   for NumDAY in 0 1 2 3 4 5 6
   do
   do
       echo >> /etc/cron.d/CTparental${DAYS[$NumDAY]}
       echo >> /etc/cron.d/CTparental${DAYS[$NumDAY]}
   done
   done
  echo >> $FILE_HCONF
$SED "s?^HOURSCONNECT.*?HOURSCONNECT=ON?g" $FILE_CONF
$CMDSERVICE$namservicecrond restart
$CMDSERVICE$namservicecrond restart
}
}
desactivetimelogin () {
desactivetimelogin () {
for FILE in `echo $GESTIONNAIREDESESSIONS`
for FILE in `echo $GESTIONNAIREDESESSIONS`
Ligne 804 : Ligne 965 :
   rm -f /etc/cron.d/CTparental${DAYS[$NumDAY]}
   rm -f /etc/cron.d/CTparental${DAYS[$NumDAY]}
done
done
$SED "s?^HOURSCONNECT.*?HOURSCONNECT=OFF?g" $FILE_CONF
$CMDSERVICE$namservicecrond restart
$CMDSERVICE$namservicecrond restart
}
}


readTimeFILECONF () {
  TESTGESTIONNAIRE=""
  for FILE in `echo $GESTIONNAIREDESESSIONS`
  do
      if [ -f $DIRPAM$FILE ];then
        if [ $(cat $DIRPAM$FILE | grep -c "account required pam_time.so") -eq 0  ] ; then
            echo "account required pam_time.so" >> $DIRPAM$FILE
        fi
        TESTGESTIONNAIRE=$TESTGESTIONNAIRE\ $FILE
      fi
  done
  if [ $( echo $TESTGESTIONNAIRE | wc -m ) -eq 1 ] ; then
      echo "Aucun gestionner de session connu , n'a été détecté."
      echo " il est donc impossible d'activer le controle horaires des connections"
      desactivetimelogin
      exit 1
  fi
 
  if [ ! -f $FILEPAMTIMECONF.old ] ; then
  cp $FILEPAMTIMECONF $FILEPAMTIMECONF.old
  fi
  echo "*;*;root;Al0000-2400" > $FILEPAMTIMECONF
  for NumDAY in 0 1 2 3 4 5 6
  do
  echo  > /etc/cron.d/CTparental${DAYS[$NumDAY]}
  done
 
  for PCUSER in `cat /etc/passwd | cut -d":" -f1,3| grep -E [1-9][0-9][0-9][0-9] | cut -d ":" -f1`
  do
  HORAIRESPAM=""
  userisconfigured="0"
while read line
do
if [ $( echo $line | grep -E -c "^$PCUSER=[0-6]=" ) -eq 1 ] ; then
echo "$line"
NumDAY=$(echo $line | cut -d"=" -f2)
h1=$(echo $line | cut -d"=" -f3 | cut -d":" -f1 | cut -d"h" -f1)
m1=$(echo $line | cut -d"=" -f3 | cut -d":" -f1 | cut -d"h" -f2)
h2=$(echo $line | cut -d"=" -f3 | cut -d":" -f2 | cut -d"h" -f1)
m2=$(echo $line | cut -d"=" -f3 | cut -d":" -f2 | cut -d"h" -f2)
h3=$(echo $line | cut -d"=" -f3 | cut -d":" -f3 | cut -d"h" -f1)
m3=$(echo $line | cut -d"=" -f3 | cut -d":" -f3 | cut -d"h" -f2)
h4=$(echo $line | cut -d"=" -f3 | cut -d":" -f4 | cut -d"h" -f1)
m4=$(echo $line | cut -d"=" -f3 | cut -d":" -f4 | cut -d"h" -f2)
if [ $(echo -n $h3$m3 | wc -c) -gt 2 ]; then
if [ $NumDAY -eq 6 ] ; then
                        HORAIRESPAM="$HORAIRESPAM${DAYSPAM[$NumDAY]}$h1$m1-$h2$m2|${DAYSPAM[$NumDAY]}$h3$m3-$h4$m4"
                      else
                        HORAIRESPAM="$HORAIRESPAM${DAYSPAM[$NumDAY]}$h1$m1-$h2$m2|${DAYSPAM[$NumDAY]}$h3$m3-$h4$m4|"
                      fi
echo "$m2 $h2 * * ${DAYSCRON[$NumDAY]} root /usr/bin/skill -KILL -u$PCUSER" >> /etc/cron.d/CTparental${DAYS[$NumDAY]}
echo "$m4 $h4 * * ${DAYSCRON[$NumDAY]} root /usr/bin/skill -KILL -u$PCUSER" >> /etc/cron.d/CTparental${DAYS[$NumDAY]}
userisconfigured="1"
else
        if [ $NumDAY -eq 6 ] ; then
          HORAIRESPAM="$HORAIRESPAM${DAYSPAM[$NumDAY]}$h1$m1-$h2$m2"
        else
          HORAIRESPAM="$HORAIRESPAM${DAYSPAM[$NumDAY]}$h1$m1-$h2$m2|"
        fi
echo "$m2 $h2 * * ${DAYSCRON[$NumDAY]} root /usr/bin/skill -KILL -u$PCUSER" >> /etc/cron.d/CTparental${DAYS[$NumDAY]}
userisconfigured="1"
fi
fi
done < $FILE_HCONF
if [ $userisconfigured -eq 1 ] ; then
echo "*;*;$PCUSER;$HORAIRESPAM" >> $FILEPAMTIMECONF
else
echo "*;*;$PCUSER;Al0000-2400" >> $FILEPAMTIMECONF
fi
  done
$SED "s?^HOURSCONNECT.*?HOURSCONNECT=ON?g" $FILE_CONF
$CMDSERVICE$namservicecrond restart
}




Ligne 853 : Ligne 1 097 :
       ;;
       ;;
   -u | --uninstall )
   -u | --uninstall )
      autoupdateoff
      dnsmasqoff
      desactivetimelogin
       uninstall
       uninstall
       exit 0
       exit 0
Ligne 861 : Ligne 1 108 :
       catChoice
       catChoice
       dnsmasqon
       dnsmasqon
       echo $THISDAYS > $LASTUPDATE
       $SED "s?^LASTUPDATE.*?LASTUPDATE=$THISDAYS=`date +%d-%m-%Y\ %T`?g" $FILE_CONF
       exit 0
       exit 0
       ;;
       ;;
Ligne 884 : Ligne 1 131 :
       ;;
       ;;
   -off | --off )
   -off | --off )
      autoupdateoff
       dnsmasqoff
       dnsmasqoff
       exit 0
       exit 0
Ligne 907 : Ligne 1 155 :
     -tlu | --timeloginon )
     -tlu | --timeloginon )
       desactivetimelogin
       desactivetimelogin
      ;;
    -trf | --timeloginon )
      readTimeFILECONF
       ;;
       ;;
     -aupon | --autoupdateon )
     -aupon | --autoupdateon )
Ligne 917 : Ligne 1 168 :
       autoupdate
       autoupdate
       ;;
       ;;
     
   *)
   *)
       echo "Argument inconnu :$1";
       echo "Argument inconnu :$1";
Ligne 923 : Ligne 1 175 :
       ;;
       ;;
esac
esac
</code>
</code>


[[Catégorie:Scripts]]
[[Catégorie:Scripts]]
199

modifications

Menu de navigation