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

Aller à la navigation Aller à la recherche
aucun résumé des modifications
(version 3.21 nombreux correctif pour le paramètre -tlo + nouveau paramètre caché -deb utile pour la création du deb.)
Aucun résumé des modifications
Ligne 5 : Ligne 5 :
# CTparental.sh
# CTparental.sh
#
#
# par guillaume MARSAT
# par Guillaume MARSAT
# une parti du code est tirer du scripte alcasar-bl.sh créer par Franck BOUIJOUX and Richard REY
# Corrections orthographiques par Pierre-Edouard TESSIER
# une parti du code est tiré du script alcasar-bl.sh créé par Franck BOUIJOUX et Richard REY
# présent dans le code du projet alcasar en version 2.6.1 ; web page http://www.alcasar.net/
# présent dans le code du projet alcasar en version 2.6.1 ; web page http://www.alcasar.net/
 
# 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
arg1=${1}
#  echo "Il vous faut les droit root pour lancer ce scripte"
if [ $arg1 != "-listusers" ] ; then
#  exit 1
if [ ! $UID -le 499 ]; then # considaire comme root tous les utilisateurs avec un uid inferieur ou egale a 499,ce qui permet a apt-get,urpmi,yum... de lance le scripte sans erreur.
#fi
   echo "Il vous faut des droits root pour lancer ce script"
args=${1}
  exit 1
installdeb="0"
fi
if [ ! -z ${2} ];then
  if [ ${2} = "-deb" ];then # utiliser dans les fichiers postinst et prerm du deb
      installdeb="1"
   else
  DIRhtmlPersonaliser=${2}
  if [ ! -d $DIRhtmlPersonaliser ];then
      echo "Chemin de répertoir non valide!"
      exit 0
  fi
  fi
fi
fi
noinstalldep="0"
nomanuel="0"
ARGS=($*)
for (( narg=1; narg<=$#; narg++ )) ; do
        case "${ARGS[$narg]}" in
  -nodep )
    noinstalldep="1"
  ;;
  -nomanuel )
    nomanuel="1"
  ;;
  -dirhtml )
    narg=$(( $narg +1 ))
    DIRhtmlPersonaliser=${ARGS[$narg]}
    if [ ! -d $DIRhtmlPersonaliser ];then
echo "Chemin de répertoire non valide!"
exit 0
    fi
  ;;
esac
done
pause () {  # fonction pause pour debugage
      MESSAGE="$*"
      choi=""
      MESSAGE=${MESSAGE:="pour continuer appuyez sur une touche :"}
      echo  "$MESSAGE"
      while (true); do
        read choi
        case $choi in
        * )
        break
        ;;
      esac
      done
}
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_CONF="$DIR_CONF/CTparental.conf"
FILE_HCONF="$DIR_CONF/CThours.conf";
FILE_HCONF="$DIR_CONF/CThours.conf"
if [ ! -f $FILE_CONF ] ; then
if [ ! -f $FILE_CONF ] ; then
mkdir -p $DIR_CONF
mkdir -p $DIR_CONF
mkdir -p /usr/local/share/CTparental/
cat << EOF > $FILE_CONF
cat << EOF > $FILE_CONF
LASTUPDATE=0
LASTUPDATE=0
Ligne 39 : Ligne 68 :
HOURSCONNECT=OFF
HOURSCONNECT=OFF
EOF
EOF
fi
## imports du plugin de la distributions si il existe
if [ -f $DIR_CONF/dist.conf ];then
source  $DIR_CONF/dist.conf
fi
fi


Ligne 46 : Ligne 81 :
VertD="\033[1;32m"
VertD="\033[1;32m"
Fcolor="\033[0m"
Fcolor="\033[0m"
GESTIONNAIREDESESSIONS=" login gdm lightdm slim kdm xdm "
GESTIONNAIREDESESSIONS=" login gdm lightdm slim kdm xdm lxdm gdm3 "
FILEPAMTIMECONF="/etc/security/time.conf"
FILEPAMTIMECONF="/etc/security/time.conf"
DIRPAM="/etc/pam.d/"
DIRPAM="/etc/pam.d/"
DAYS=( lundi mardi mercredi jeudi vendredi samedi dimanche )
DAYS=${DAYS:="lundi mardi mercredi jeudi vendredi samedi dimanche "}
DAYS=( $DAYS )
DAYSPAM=( Mo Tu We Th Fr Sa Su )
DAYSPAM=( Mo Tu We Th Fr Sa Su )
DAYSCRON=( mon tue wed thu fri sat sun )
DAYSCRON=( mon tue wed thu fri sat sun )
 
service --help 2&> /dev/null
#### DEPENDANCES par DEFAULT #####
if [ $? -eq 0 ] ; then
DEPENDANCES=${DEPENDANCES:=" dnsmasq lighttpd php5-cgi libnotify-bin notification-daemon resolvconf "}
  CMDSERVICE="service "
#### RESOLVCONF EST PAS PRESENT DANS LA DISTRIBUTION ####
else
NORESOLVCONF=${NORESOLVCONF:=0}
  CMDSERVICE="/etc/init.d/"
#### COMMANDES de services par DEFAULT #####
fi
CMDSERVICE=${CMDSERVICE:="service "}
DNSMASQCONF="/etc/dnsmasq.conf"
CRONstart=${CRONstart:="$CMDSERVICE crond start "}
MAINCONFHTTPD="/etc/lighttpd/lighttpd.conf"
CRONstop=${CRONstop:="$CMDSERVICE crond stop "}
DIRCONFENABLEDHTTPD="/etc/lighttpd/conf-enabled"
CRONrestart=${CRONrestart:="$CMDSERVICE crond restart "}
CTPARENTALCONFHTTPD=$DIRCONFENABLEDHTTPD"/10-CTparental.conf"
LIGHTTPDstart=${LIGHTTPDstart:="$CMDSERVICE lighttpd start "}
RESOLVCONFMAIN="/etc/resolvconf"
LIGHTTPDstop=${LIGHTTPDstop:="$CMDSERVICE lighttpd stop "}
RESOLVDNSMASQ="$RESOLVCONFMAIN/run/interface/lo.dnsmasq"
LIGHTTPDrestart=${LIGHTTPDrestart:="$CMDSERVICE lighttpd restart "}
RESOLVCONFORDER="$RESOLVCONFMAIN/interface-order"
DNSMASQstart=${DNSMASQstart:="$CMDSERVICE dnsmasq start "}
DIRHTML="/var/www/CTparental"
DNSMASQstop=${DNSMASQstop:="$CMDSERVICE dnsmasq stop "}
DIRadminHTML="/var/www/CTadmin"
DNSMASQrestart=${DNSMASQrestart:="$CMDSERVICE dnsmasq restart "}
namservicednsmaq="dnsmasq"
NWMANAGERstop=${NWMANAGERstop:="$CMDSERVICE network-manager stop"}
namservicehttpd="lighttpd"
NWMANAGERstart=${NWMANAGERstart:="$CMDSERVICE network-manager start"}
namservicecrond="cron"
NWMANAGERrestart=${NWMANAGERrestart:="$CMDSERVICE network-manager restart"}
PASSWORDFILEHTTPD="/etc/lighttpd/lighttpd-htdigest.user"
 
REALMADMINHTTPD="interface admin"
#### LOCALISATION du fichier PID lighttpd par default ####
LIGHTTPpidfile=${LIGHTTPpidfile:="/var/run/lighttpd.pid"}
 
#### COMMANDES D'ACTIVATION DES SERVICES AU DEMARAGE DU PC ####
ENCRON=${ENCRON:=""}
ENLIGHTTPD=${ENLIGHTTPD:=""}
ENDNSMASQ=${ENDNSMASQ:=""}
ENNWMANAGER=${ENNWMANAGER:=""}
#### UID MINIMUM pour les UTILISATEUR
UIDMINUSER=${UIDMINUSER:=1000}
 
DNSMASQCONF=${DNSMASQCONF:="/etc/dnsmasq.conf"}
MAINCONFHTTPD=${MAINCONFHTTPD:="/etc/lighttpd/lighttpd.conf"}
DIRCONFENABLEDHTTPD=${DIRCONFENABLEDHTTPD:="/etc/lighttpd/conf-enabled"}
CTPARENTALCONFHTTPD=${CTPARENTALCONFHTTPD:="$DIRCONFENABLEDHTTPD/10-CTparental.conf"}
RESOLVCONFMAIN=${RESOLVCONFMAIN:="/etc/resolvconf"}
RESOLVDNSMASQ=${RESOLVDNSMASQ:="$RESOLVCONFMAIN/run/interface/lo.dnsmasq"}
RESOLVCONFORDER=${RESOLVCONFORDER:="$RESOLVCONFMAIN/interface-order"}
DIRHTML=${DIRHTML:="/var/www/CTparental"}
DIRadminHTML=${DIRadminHTML:="/var/www/CTadmin"}
PASSWORDFILEHTTPD=${PASSWORDFILEHTTPD:="/etc/lighttpd/lighttpd-htdigest.user"}
REALMADMINHTTPD=${REALMADMINHTTPD:="interface admin"}
CMDINSTALL=""
CMDINSTALL=""
paquetresolv="resolvconf"
 
yum help 2&> /dev/null
if [ $(yum help | wc -l ) -ge 50 ] ; then
if [ $? -eq 0 ] ; then
   ## "Distribution basée sur yum exemple redhat, fedora..."
   ## "Distribution baser sur yum exemple readhat,fedora..."
   CMDINSTALL=${CMDINSTALL:="yum install "}
   CMDINSTALL="yum install "
   CMDREMOVE=${CMDREMOVE:="yum remove "}
   CMDREMOVE="yum remove "
fi
fi
urpmi --help 2&> /dev/null
urpmi --help 2&> /dev/null
if [ $? -eq 1 ] ; then
if [ $? -eq 1 ] ; then
   ## "Distribution baser sur urpmi exemple mandriva..."
   ## "Distribution basée sur urpmi exemple mandriva..."
   CMDINSTALL="urpmi -a --auto "
   CMDINSTALL=${CMDINSTALL:="urpmi -a --auto "}
   CMDREMOVE="urpme --auto "
   CMDREMOVE=${CMDREMOVE:="urpme --auto "}
  namservicecrond="crond"
fi
fi
apt-get -h 2&> /dev/null
apt-get -h 2&> /dev/null
if [ $? -eq 0 ] ; then
if [ $? -eq 0 ] ; then
   ## "Distribution baser sur apt-get exemple debian,ubuntu ..."
   ## "Distribution basée sur apt-get exemple debian, ubuntu ..."
   CMDINSTALL="apt-get -y --force-yes install "
   CMDINSTALL=${CMDINSTALL:="apt-get -y --force-yes install "}
   CMDREMOVE="apt-get -y --force-yes remove --purge "
   CMDREMOVE=${CMDREMOVE:="apt-get -y --force-yes remove --purge "}
fi
if [ $args="-i" ] ; then
  namserviceNetworkManager="network-manager"
  if [ -f /etc/NetworkManager/NetworkManager.conf ];then
    $SED "s/^dns=dnsmasq/#dns=dnsmasq/g" /etc/NetworkManager/NetworkManager.conf
    $CMDSERVICE$namserviceNetworkManager restart
    sleep 5
  fi
fi
fi


Ligne 129 : Ligne 176 :
WL_CATEGORIES_AVAILABLE="$DIR_CONF/wl-categories-available"
WL_CATEGORIES_AVAILABLE="$DIR_CONF/wl-categories-available"
DIR_DNS_FILTER_AVAILABLE="$DIR_CONF/dnsfilter-available"
DIR_DNS_FILTER_AVAILABLE="$DIR_CONF/dnsfilter-available"
DIR_DNS_BLACKLISTE_ENABLED="$DIR_CONF/blackliste-enabled"
DIR_DNS_BLACKLIST_ENABLED="$DIR_CONF/blacklist-enabled"
DIR_DNS_WHITELIST_ENABLED="$DIR_CONF/whitelist-enabled"
DIR_DNS_WHITELIST_ENABLED="$DIR_CONF/whitelist-enabled"
DNS_FILTER_OSSI="$DIR_CONF/blackliste-local"
DNS_FILTER_OSSI="$DIR_CONF/blacklist-local"
DREAB="$DIR_CONF/domaine-rehabiliter"  
DREAB="$DIR_CONF/domaine-rehabiliter"  
THISDAYS=$(expr $(date +%Y) \* 365 + $(date +%j))
THISDAYS=$(expr $(date +%Y) \* 365 + $(date +%j))
Ligne 181 : Ligne 228 :
   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
       echo "erreur lors du téléchargement processu interompu"
       echo "erreur lors du téléchargement, processus interrompu"
       rm -rf $tempDIR
       rm -rf $tempDIR
       set -e
       set -e
Ligne 188 : Ligne 235 :
   tar -xzf $tempDIR/blacklists.tar.gz -C $tempDIR
   tar -xzf $tempDIR/blacklists.tar.gz -C $tempDIR
   if [ ! $? -eq 0 ]; then
   if [ ! $? -eq 0 ]; then
       echo "erreur d'extraction de l'archive processu interompu"
       echo "erreur d'extraction de l'archive, processus interrompu"
       set -e
       set -e
       exit 1
       exit 1
Ligne 211 : Ligne 258 :
$SED "s?^AUTOUPDATE.*?AUTOUPDATE=ON?g" $FILE_CONF
$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
$CRONrestart
}
}


Ligne 217 : Ligne 264 :
$SED "s?^AUTOUPDATE.*?AUTOUPDATE=OFF?g" $FILE_CONF
$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
$CRONrestart
}
}
adapt() {
adapt() {
Ligne 257 : Ligne 304 :
             $SED "/^#.*/d" $FILE_tmp
             $SED "/^#.*/d" $FILE_tmp
             $SED "/^$/d" $FILE_tmp
             $SED "/^$/d" $FILE_tmp
             $SED "s/\.\{2,1000\}/\./g" $FILE_tmp # supprime les suite de "." exemple: address=/fucking-big-tits..com/127.0.0.10 devient address=/fucking-big-tits.com/127.0.0.10
             $SED "s/\.\{2,10\}/\./g" $FILE_tmp # supprime les suite de "." exemple: address=/fucking-big-tits..com/127.0.0.10 devient address=/fucking-big-tits.com/127.0.0.10
    is_blacklist=`grep $DOMAINE $BL_CATEGORIES_AVAILABLE |wc -l`
    is_blacklist=`grep $DOMAINE $BL_CATEGORIES_AVAILABLE |wc -l`
    if [ $is_blacklist -ge "1" ] ; then
    if [ $is_blacklist -ge "1" ] ; then
Ligne 275 : Ligne 322 :
         $SED "/^#.*/d" $FILE_tmp  
         $SED "/^#.*/d" $FILE_tmp  
         $SED "/^$/d" $FILE_tmp  
         $SED "/^$/d" $FILE_tmp  
         $SED "s/\.\{2,1000\}/\./g" $FILE_tmp # supprime les suite de "." exemple: address=/fucking-big-tits..com/127.0.0.10 devient address=/fucking-big-tits.com/127.0.0.10
         $SED "s/\.\{2,10\}/\./g" $FILE_tmp # supprime les suite de "." exemple: address=/fucking-big-tits..com/127.0.0.10 devient address=/fucking-big-tits.com/127.0.0.10
         $SED "s?.*?address=/&/$PRIVATE_IP?g" $FILE_tmp  # Mise en forme dnsmasq
         $SED "s?.*?address=/&/$PRIVATE_IP?g" $FILE_tmp  # Mise en forme dnsmasq
         mv $FILE_tmp $DIR_DNS_FILTER_AVAILABLE/ossi.conf
         mv $FILE_tmp $DIR_DNS_FILTER_AVAILABLE/ossi.conf
Ligne 284 : Ligne 331 :
catChoice() {
catChoice() {
#  echo "catChoice"
#  echo "catChoice"
   rm -rf $DIR_DNS_BLACKLISTE_ENABLED/
   rm -rf $DIR_DNS_BLACKLIST_ENABLED/
   mkdir $DIR_DNS_BLACKLISTE_ENABLED
   mkdir $DIR_DNS_BLACKLIST_ENABLED
   rm -rf  $DIR_DNS_WHITELIST_ENABLED/
   rm -rf  $DIR_DNS_WHITELIST_ENABLED/
   mkdir  $DIR_DNS_WHITELIST_ENABLED
   mkdir  $DIR_DNS_WHITELIST_ENABLED
Ligne 293 : Ligne 340 :
is_blacklist=`grep $CATEGORIE $BL_CATEGORIES_AVAILABLE |wc -l`
is_blacklist=`grep $CATEGORIE $BL_CATEGORIES_AVAILABLE |wc -l`
if [ $is_blacklist -ge "1" ] ; then
if [ $is_blacklist -ge "1" ] ; then
cp $DIR_DNS_FILTER_AVAILABLE/$CATEGORIE.conf $DIR_DNS_BLACKLISTE_ENABLED/
cp $DIR_DNS_FILTER_AVAILABLE/$CATEGORIE.conf $DIR_DNS_BLACKLIST_ENABLED/
         else
         else
cp $DIR_DNS_FILTER_AVAILABLE/$CATEGORIE.conf $DIR_DNS_WHITELIST_ENABLED/
cp $DIR_DNS_FILTER_AVAILABLE/$CATEGORIE.conf $DIR_DNS_WHITELIST_ENABLED/
     fi     
     fi     
       done
       done
       cp $DIR_DNS_FILTER_AVAILABLE/ossi.conf $DIR_DNS_BLACKLISTE_ENABLED/
       cp $DIR_DNS_FILTER_AVAILABLE/ossi.conf $DIR_DNS_BLACKLIST_ENABLED/
#      echo "fincatChoice"
#      echo "fincatChoice"
       reabdomaine
       reabdomaine
Ligne 310 : Ligne 357 :
EOF
EOF
fi
fi
if [ ! -f $DIR_DNS_BLACKLISTE_ENABLED/ossi.conf ] ; then
if [ ! -f $DIR_DNS_BLACKLIST_ENABLED/ossi.conf ] ; then
echo > $DIR_DNS_BLACKLISTE_ENABLED/ossi.conf
echo > $DIR_DNS_BLACKLIST_ENABLED/ossi.conf
fi
fi
echo
echo
echo -n "Application de la liste blanche (domaine réabiliter):"
echo -n "Application de la liste blanche (domaine réhabilité):"
for CATEGORIE in `cat  $CATEGORIES_ENABLED  `  # pour chaque catégorie
for CATEGORIE in `cat  $CATEGORIES_ENABLED  `  # pour chaque catégorie
do  
do  
Ligne 322 : Ligne 369 :
for DOMAINE in `cat  $DREAB`
for DOMAINE in `cat  $DREAB`
do
do
    $SED "/$DOMAINE/d" $DIR_DNS_BLACKLISTE_ENABLED/$CATEGORIE.conf
    $SED "/$DOMAINE/d" $DIR_DNS_BLACKLIST_ENABLED/$CATEGORIE.conf
done
done
         fi
         fi
Ligne 332 : Ligne 379 :


dnsmasqon () {
dnsmasqon () {
   categorie1=`sed -n "1 p" $CATEGORIES_ENABLED` # on considaire que si la 1 er categorie activer est un blackliste on fonctionne par blackliste.
   categorie1=`sed -n "1 p" $CATEGORIES_ENABLED` # on considère que si la 1ère categorie activée est un blacklist on fonctionne par blacklist.
   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
Ligne 339 : Ligne 386 :
         # Configuration file for "dnsmasq with blackhole"
         # Configuration file for "dnsmasq with blackhole"
   # Inclusion de la blacklist <domains> de Toulouse dans la configuration
   # Inclusion de la blacklist <domains> de Toulouse dans la configuration
   conf-dir=$DIR_DNS_BLACKLISTE_ENABLED
   conf-dir=$DIR_DNS_BLACKLIST_ENABLED
   # conf-file=$DIR_DEST_ETC/alcasar-dns-name  # zone de definition de noms DNS locaux
   # conf-file=$DIR_DEST_ETC/alcasar-dns-name  # zone de definition de noms DNS locaux
   no-dhcp-interface=$interface_WAN
   no-dhcp-interface=$interface_WAN
Ligne 351 : Ligne 398 :
    
    
EOF
EOF
$CMDSERVICE$namservicednsmaq restart
$DNSMASQrestart
else
else
   dnsmasqwhitelistonly
   dnsmasqwhitelistonly
Ligne 361 : Ligne 408 :
         # Configuration file for "dnsmasq with blackhole"
         # Configuration file for "dnsmasq with blackhole"
   # Inclusion de la blacklist <domains> de Toulouse dans la configuration
   # Inclusion de la blacklist <domains> de Toulouse dans la configuration
   # conf-dir=$DIR_DNS_BLACKLISTE_ENABLED
   # conf-dir=$DIR_DNS_BLACKLIST_ENABLED
   # conf-file=$DIR_DEST_ETC/alcasar-dns-name  # zone de definition de noms DNS locaux
   # conf-file=$DIR_DEST_ETC/alcasar-dns-name  # zone de definition de noms DNS locaux
   no-dhcp-interface=$interface_WAN
   no-dhcp-interface=$interface_WAN
Ligne 374 : Ligne 421 :
EOF
EOF


$CMDSERVICE$namservicednsmaq restart
$DNSMASQrestart
}
}
dnsmasqwhitelistonly  () {
dnsmasqwhitelistonly  () {
Ligne 391 : Ligne 438 :
   server=$DNS1
   server=$DNS1
   server=$DNS2
   server=$DNS2
   address=/#/$PRIVATE_IP #redirige vers $PRIVATE_IP pour tous ce qui n'a pas étais resolut dans les listes blanches
   address=/#/$PRIVATE_IP #redirige vers $PRIVATE_IP pour tout ce qui n'a pas été resolu dans les listes blanches
EOF
EOF


$CMDSERVICE$namservicednsmaq restart
$DNSMASQrestart
}
}




FoncHTTPDCONF () {
FoncHTTPDCONF () {
$CMDSERVICE$namservicehttpd stop
$LIGHTTPDstop
rm -rf $DIRHTML/*
rm -rf $DIRHTML/*
mkdir -v $DIRHTML
mkdir -v $DIRHTML
Ligne 493 : Ligne 540 :
"mod_alias",
"mod_alias",
"mod_redirect",
"mod_redirect",
"mod_auth", #pour insteface admin
"mod_auth", #pour interface admin
"mod_fastcgi",  #pour insteface admin (activation du php)
"mod_fastcgi",  #pour interface admin (activation du php)
# "mod_rewrite",
)
)
auth.debug                = 0
auth.debug                = 0
Ligne 504 : Ligne 550 :
server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
server.errorlog = "/var/log/lighttpd/error.log"
server.errorlog = "/var/log/lighttpd/error.log"
server.pid-file = "/var/run/lighttpd.pid"
server.pid-file = "$LIGHTTPpidfile"
server.username = "$USERHTTPD"
server.username = "$USERHTTPD"
server.groupname = "$GROUPHTTPD"
server.groupname = "$GROUPHTTPD"
Ligne 514 : Ligne 560 :
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.filetype = ( "text/css", "text/html", "text/plain" )


server.tag = ""
server.tag = ""
Ligne 578 : Ligne 621 :
mkdir -p $DIRadminHTML
mkdir -p $DIRadminHTML
cp -rf CTadmin/* $DIRadminHTML/
cp -rf CTadmin/* $DIRadminHTML/
#if [ $installdeb = "1" ]; then
#if [ $noinstalldep = "1" ]; then
# addadminhttpd "admin" "admin"
# addadminhttpd "admin" "admin"
#else
#else
Ligne 593 : Ligne 636 :
done
done
clear
clear
echo "Entrer le mot de $loginhttp :"
echo "Entrer le mot de passe de $loginhttp :"
while (true); do
while (true); do
read password
read password
Ligne 654 : Ligne 697 :
is_sudo_ok=`grep $USERHTTPD /etc/sudoers |wc -l`
is_sudo_ok=`grep $USERHTTPD /etc/sudoers |wc -l`
         if [ $is_sudo_ok -ge "1" ] ; then
         if [ $is_sudo_ok -ge "1" ] ; then
$SED "s?^Defaults:$USERHTTPD.*requiretty.*?Defaults:$USERHTTPD    \!requiretty?g" /etc/sudoers
$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
$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
         else
echo "Defaults:$USERHTTPD    !requiretty" >> /etc/sudoers
         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
         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
         fi
Ligne 664 : Ligne 710 :
chown root:$GROUPHTTPD $FILE_HCONF
chown root:$GROUPHTTPD $FILE_HCONF
chmod 660 $FILE_HCONF
chmod 660 $FILE_HCONF
 
chown -R root:$GROUPHTTPD $DIRHTML
$CMDSERVICE$namservicehttpd start
chown -R root:$GROUPHTTPD $DIRadminHTML
$LIGHTTPDstart
test=$?
test=$?
if [ ! $test -eq 0 ];then
if [ ! $test -eq 0 ];then
Ligne 675 : Ligne 722 :


install () {
install () {
if [ $nomanuel -eq 0 ]; then
vim -h 2&> /dev/null
if [ $? -eq 0 ] ; then
EDIT="vim "
fi
mono -h 2&> /dev/null
if [ $? -eq 0 ] ; then
EDIT=${EDIT:="mono "}
fi
vi -h 2&> /dev/null
if [ $? -eq 0 ] ; then
EDIT=${EDIT:="vi "}
fi
if [ -f gpl-3.0.fr.txt ] ; then
cp -f gpl-3.0.fr.txt /usr/local/share/CTparental/
fi
if [ -f gpl-3.0.txt ] ; then
cp -f gpl-3.0.txt /usr/local/share/CTparental/
fi
if [ -f CHANGELOG ] ; then
cp -f CHANGELOG /usr/local/share/CTparental/
fi
if [ -f dist.conf ];then
cp -f dist.conf /usr/local/share/CTparental/dist.conf.orig
cp -f dist.conf $DIR_CONF/
fi
while (true); do
$EDIT $DIR_CONF/dist.conf
clear
cat $EDIT $DIR_CONF/dist.conf | grep -v -E ^#
echo "Entrer : S pour continuer avec ces parramêtres ."
echo "Entrer : Q pour Quiter l'installation."
echo "Entrer tous autre choix pour modifier les parramêtres."
read choi
case $choi in
S | s )
break
;;
Q | q )
exit
;;
esac
done
fi
if [ -f $DIR_CONF/dist.conf ];then
source  $DIR_CONF/dist.conf
fi
if [ -f /etc/NetworkManager/NetworkManager.conf ];then
    $SED "s/^dns=dnsmasq/#dns=dnsmasq/g" /etc/NetworkManager/NetworkManager.conf
    $NWMANAGERrestart
    sleep 5
  fi


       mkdir $tempDIR
       mkdir $tempDIR
Ligne 680 : Ligne 781 :
       initblenabled
       initblenabled
       cat /etc/resolv.conf > $DIR_CONF/resolv.conf.sav
       cat /etc/resolv.conf > $DIR_CONF/resolv.conf.sav
       if [ $installdeb = "0" ]; then
       if [ $noinstalldep = "0" ]; then
      $CMDINSTALL dnsmasq
      $CMDINSTALL $DEPENDANCES
      $CMDINSTALL lighttpd
      $CMDINSTALL php5-cgi
       fi
       fi
       if [ ! -f blacklists.tar.gz ]
       if [ ! -f blacklists.tar.gz ]
Ligne 691 : Ligne 790 :
         tar -xzf blacklists.tar.gz -C $tempDIR
         tar -xzf blacklists.tar.gz -C $tempDIR
         if [ ! $? -eq 0 ]; then
         if [ ! $? -eq 0 ]; then
             echo "erreur d'extraction de l'archive processu interompu"
             echo "Erreur d'extraction de l'archive, processus interrompu"
             uninstall
             uninstall
             set -e
             set -e
Ligne 703 : Ligne 802 :
       dnsmasqon
       dnsmasqon
       $SED "s?^LASTUPDATE.*?LASTUPDATE=$THISDAYS=`date +%d-%m-%Y\ %T`?g" $FILE_CONF
       $SED "s?^LASTUPDATE.*?LASTUPDATE=$THISDAYS=`date +%d-%m-%Y\ %T`?g" $FILE_CONF
      if [ $installdeb = "0" ]; then
    $CMDINSTALL $paquetresolv
      fi
       confresolvconf
       confresolvconf
       FoncHTTPDCONF
       FoncHTTPDCONF
}
      $ENCRON
      $ENLIGHTTPD
      $ENDNSMASQ
      $ENNWMANAGER
 
     
}


confresolvconf () {
confresolvconf () {
echo "nameserver 127.0.0.1" > $RESOLVDNSMASQ
if [ $NORESOLVCONF -eq 1 ] ; then
if [ ! -f $RESOLVCONFORDER ];then
chattr -i /etc/resolv.conf
echo "nameserver 127.0.0.1" > /etc/resolv.conf
chattr +i /etc/resolv.conf
else
echo "nameserver 127.0.0.1" > $RESOLVDNSMASQ
if [ ! -f $RESOLVCONFORDER ];then
cat << EOF > $RESOLVCONFORDER
cat << EOF > $RESOLVCONFORDER
# interface-order(5)
# interface-order(5)
lo.inet*
lo.inet*
lo.dnsmasq
lo.dnsmasq
lo.pdnsd
lo.pdnsd
lo.!(pdns|pdns-recursor)
lo.!(pdns|pdns-recursor)
lo
lo
tun*
tun*
tap*
tap*
hso*
hso*
em+([0-9])?[+([0-9]))*
em+([0-9])?[+([0-9]))*
p+([0-9]p+([0-9])?(_+([0-9]))*
p+([0-9]p+([0-9])?(_+([0-9]))*
eth*
eth*
ath*
ath*
wlan*
wlan*
ppp*
ppp*
*
*
EOF
EOF
fi
resolvconf -u
fi
fi
resolvconf -u
}
}


uninstall () {
uninstall () {
   rm -f /etc/cron.d/CTparental*
   rm -f /etc/cron.d/CTparental*
   $CMDSERVICE$namservicecrond restart
   $DNSMASQrestart
   $CMDSERVICE$namservicehttpd stop
   $LIGHTTPDstop
   rm -f /var/www/index.lighttpd.html
   rm -f /var/www/index.lighttpd.html
   rm -rf $tempDIR
   rm -rf $tempDIR
  rm -rf $DIR_CONF
   rm -rf $DIRHTML
   rm -rf $DIRHTML


  rm -rf /usr/local/share/CTparental
  rm -rf /usr/share/lighttpd/*
  rm -f $CTPARENTALCONFHTTPD
  rm -rf $DIRadminHTML
  if [ $NORESOLVCONF -eq 1 ] ; then
chattr -i /etc/resolv.conf
cat $DIR_CONF/resolv.conf.sav > /etc/resolv.conf
dhclient -r
dhclient
  else
  rm -f $RESOLVDNSMASQ
  resolvconf -u
  fi
   if [ -f /etc/NetworkManager/NetworkManager.conf ];then
   if [ -f /etc/NetworkManager/NetworkManager.conf ];then
$SED "s/^#dns=dnsmasq/dns=dnsmasq/g" /etc/NetworkManager/NetworkManager.conf
$SED "s/^#dns=dnsmasq/dns=dnsmasq/g" /etc/NetworkManager/NetworkManager.conf
$CMDSERVICE$namserviceNetworkManager restart
$NWMANAGERrestart
   sleep 5
   sleep 5
   fi
   fi
  rm -rf /usr/share/lighttpd/*
   rm -rf $DIR_CONF
  rm -f $CTPARENTALCONFHTTPD
   if [ $noinstalldep = "0" ]; then
   rm -rf $DIRadminHTML
  $CMDREMOVE $DEPENDANCES
  rm -f $RESOLVDNSMASQ
  resolvconf -u
   if [ $installdeb = "0" ]; then
          $CMDREMOVE php5-cgi
  $CMDREMOVE lighttpd
  $CMDREMOVE dnsmasq
  $CMDREMOVE $paquetresolv
   fi
   fi
}
}
Ligne 766 : Ligne 879 :
echo -n > $CATEGORIES_ENABLED
echo -n > $CATEGORIES_ENABLED
clear
clear
echo "Voulez Filtre par Blackliste ou Whiteliste :"
echo "Voulez-vous filtrer par Blacklist ou Whitelist :"
echo -n " B/W :"
echo -n " B/W :"
while (true); do
while (true); do
Ligne 772 : Ligne 885 :
         case $choi in
         case $choi in
         B | b )
         B | b )
         echo "Vous aller maintenant choisir les \"Black listes\" a appliquer."
         echo "Vous allez maintenant choisir les \"Black listes\" à appliquer."
for CATEGORIE in `cat  $BL_CATEGORIES_AVAILABLE`  # pour chaque catégorie
for CATEGORIE in `cat  $BL_CATEGORIES_AVAILABLE`  # pour chaque catégorie
do   
do   
Ligne 794 : Ligne 907 :
         ;;
         ;;
         W | w )
         W | w )
         echo "Vous aller maintenant choisir les \"White listes\" a appliquer."
         echo "Vous allez maintenant choisir les \"White listes\" à appliquer."
for CATEGORIE in `cat  $WL_CATEGORIES_AVAILABLE`  # pour chaque catégorie
for CATEGORIE in `cat  $WL_CATEGORIES_AVAILABLE`  # pour chaque catégorie
do   
do   
Ligne 822 : Ligne 935 :
errortime1 () {
errortime1 () {
clear
clear
echo -e "L'heure de debut doit ètre strictement inférieur a l'heure de fin: $RougeD$input$Fcolor "
echo -e "L'heure de début doit être strictement inférieure a l'heure de fin: $RougeD$input$Fcolor "
echo "exemple: 08h00 a 23h59 ou 08h00 a 12h00 et 14h00 a 23h59"
echo "exemple: 08h00 à 23h59 ou 08h00 à 12h00 et 14h00 à 23h59"
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é à se connecter le $BleuD${DAYS[$NumDAY]}$Fcolor de :"
}
}
errortime2 () {
errortime2 () {
clear
clear
echo -e "Mauvaise syntaxe: $RougeD$input$Fcolor "
echo -e "Mauvaise syntaxe: $RougeD$input$Fcolor "
echo "exemple: 08h00 a 23h59 ou 08h00 a 12h00 et 14h00 a 23h59"
echo "exemple: 08h00 à 23h59 ou 08h00 à 12h00 et 14h00 à 23h59"
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é à se connecter le $BleuD${DAYS[$NumDAY]}$Fcolor de :"
}
}


pause () {   # fonction pause pour debugage
 
      choi=""
timecronalert () {
      echo  "pour continuer  press Q :"
MinAlert=${1} # temp en minute entre l'alerte et l'action
      while (true); do
H=$((10#${2}))
        read choi
M=$((10#${3}))
        case $choi in
D=$((10#${4}))
        Q | q )
MinTotalAlert="$(($H*60+$M-$MinAlert))"
        break
if [ $(( $MinTotalAlert < 0 )) -eq 1 ]
        ;;
then
      esac
if [ $Numday -eq 0 ] ; then
      done
D=6
else
D=$(( $D -1 ))
fi
MinTotalAlert="$(($(($H + 24))*60+$M-$MinAlert))"
fi
Halert=$(($MinTotalAlert/60))
MAlert=$(($MinTotalAlert - $(( $Halert *60 )) ))
echo "$MAlert $Halert * * ${DAYSCRON[$D]}"
}
}
activetimelogin () {
activetimelogin () {
   TESTGESTIONNAIRE=""
   TESTGESTIONNAIRE=""
Ligne 851 : Ligne 973 :
       if [ -f $DIRPAM$FILE ];then
       if [ -f $DIRPAM$FILE ];then
         if [ $(cat $DIRPAM$FILE | grep -c "account required pam_time.so") -eq 0  ] ; then
         if [ $(cat $DIRPAM$FILE | grep -c "account required pam_time.so") -eq 0  ] ; then
             echo "account required pam_time.so" >> $DIRPAM$FILE
             $SED "1i account required pam_time.so" $DIRPAM$FILE
         fi
         fi
         TESTGESTIONNAIRE=$TESTGESTIONNAIRE\ $FILE
         TESTGESTIONNAIRE=$TESTGESTIONNAIRE\ $FILE
Ligne 857 : Ligne 979 :
   done
   done
   if [ $( echo $TESTGESTIONNAIRE | wc -m ) -eq 1 ] ; then
   if [ $( echo $TESTGESTIONNAIRE | wc -m ) -eq 1 ] ; then
       echo "Aucun gestionner de session connu , n'a été détecté."
       echo "Aucun gestionnaire 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 contrôle horaire des connexions"
       desactivetimelogin
       desactivetimelogin
       exit 1
       exit 1
Ligne 871 : Ligne 993 :
   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] | cut -d ":" -f1`
   for PCUSER in `listeusers`
   do
   do
  HOMEPCUSER=$(getent passwd "$PCUSER" | cut -d ':' -f6)
   $SED "/^$PCUSER=/d" $FILE_HCONF
   $SED "/^$PCUSER=/d" $FILE_HCONF
   echo -e -n "$PCUSER est autoriser a ce connecter 7j/7 24h/24 O/N?"  
   echo -e -n "$PCUSER est autorisé a se connecter 7j/7 24h/24 O/N?"  
   choi=""
   choi=""
   while (true); do
   while (true); do
Ligne 899 : Ligne 1 022 :
 
 
         clear
         clear
         echo "exemple: 00h00 a 23h59 ou 08h00 a 12h00 et 14h00 a 16h50"
         echo "exemple: 00h00 à 23h59 ou 08h00 à 12h00 et 14h00 à 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é à se connecter le $BleuD${DAYS[$NumDAY]}$Fcolor de :"
         while (true); do
         while (true); do
             read choi
             read choi
             input=$choi
             input=$choi
             choi=$(echo $choi | sed -e "s/h//g" | sed -e "s/ //g" | sed -e "s/a/-/g" | sed -e "s/et/:/g" ) # mise en forme de choi pour pam   
             choi=$(echo $choi | sed -e "s/h//g" | sed -e "s/ //g" | sed -e "s/a/-/g" | sed -e "s/et/:/g" ) # mise en forme de la variable choi pour pam   
               if [ $( echo $choi | grep -E -c "^([0-1][0-9]|2[0-3])[0-5][0-9]-([0-1][0-9]|2[0-3])[0-5][0-9]$|^([0-1][0-9]|2[0-3])[0-5][0-9]-([0-1][0-9]|2[0-3])[0-5][0-9]:([0-1][0-9]|2[0-3])[0-5][0-9]-([0-1][0-9]|2[0-3])[0-5][0-9]$" ) -eq 1 ];then
               if [ $( echo $choi | grep -E -c "^([0-1][0-9]|2[0-3])[0-5][0-9]-([0-1][0-9]|2[0-3])[0-5][0-9]$|^([0-1][0-9]|2[0-3])[0-5][0-9]-([0-1][0-9]|2[0-3])[0-5][0-9]:([0-1][0-9]|2[0-3])[0-5][0-9]-([0-1][0-9]|2[0-3])[0-5][0-9]$" ) -eq 1 ];then
                   int1=$(echo $choi | cut -d ":" -f1 | cut -d "-" -f1)
                   int1=$(echo $choi | cut -d ":" -f1 | cut -d "-" -f1)
Ligne 917 : Ligne 1 040 :
                           HORAIRESPAM="$HORAIRESPAM${DAYSPAM[$NumDAY]}$int1-$int2|"
                           HORAIRESPAM="$HORAIRESPAM${DAYSPAM[$NumDAY]}$int1-$int2|"
                         fi
                         fi
                         MINUTES1=$(echo $int1 | sed -e 's/.\{02\}//')
                         m1=$(echo $int1 | sed -e 's/.\{02\}//')
                         HEURES1=$(echo $int1 | sed -e 's/.\{02\}$//')  
                         h1=$(echo $int1 | sed -e 's/.\{02\}$//')  
                         MINUTES2=$(echo $int2 | sed -e 's/.\{02\}//')
                         m2=$(echo $int2 | sed -e 's/.\{02\}//')
                         HEURES2=$(echo $int2 | sed -e 's/.\{02\}$//')
                         h2=$(echo $int2 | sed -e 's/.\{02\}$//')
echo "$PCUSER=$NumDAY=$HEURES1${h}h$MINUTES1:$HEURES2${h}h$MINUTES2" >> $FILE_HCONF   
echo "$PCUSER=$NumDAY=$h1${h}h$m1:$h2${h}h$m2" >> $FILE_HCONF   
                         echo "$MINUTES2 $HEURES2 * * ${DAYSCRON[$NumDAY]} root /usr/bin/skill -KILL -u$PCUSER" >> /etc/cron.d/CTparental${DAYS[$NumDAY]}
                         echo "$m2 $h2 * * ${DAYSCRON[$NumDAY]} root /usr/bin/skill -KILL -u$PCUSER" >> /etc/cron.d/CTparental${DAYS[$NumDAY]}
for count in 1 2 3 4 5
do
                        echo "$(timecronalert $count $h2 $m2 $NumDAY) root export DISPLAY=:0.0 && export XAUTHORITY=$HOMEPCUSER/.Xauthority && sudo -u $PCUSER  /usr/bin/notify-send -u critical \"Alerte CTparental\" \"fermeture de session dans $count minutes \" " >> /etc/cron.d/CTparental${DAYS[$NumDAY]}
done
                         break
                         break
    
    
Ligne 933 : Ligne 1 060 :
                                 HORAIRESPAM="$HORAIRESPAM${DAYSPAM[$NumDAY]}$int1-$int2|${DAYSPAM[$NumDAY]}$int3-$int4|"
                                 HORAIRESPAM="$HORAIRESPAM${DAYSPAM[$NumDAY]}$int1-$int2|${DAYSPAM[$NumDAY]}$int3-$int4|"
                               fi
                               fi
                               MINUTES1=$(echo $int1 | sed -e 's/.\{02\}//')
                               m1=$(echo $int1 | sed -e 's/.\{02\}//')
                               HEURES1=$(echo $int1 | sed -e 's/.\{02\}$//')   
                               h1=$(echo $int1 | sed -e 's/.\{02\}$//')   
                               MINUTES2=$(echo $int2 | sed -e 's/.\{02\}//')
                               m2=$(echo $int2 | sed -e 's/.\{02\}//')
                               HEURES2=$(echo $int2 | sed -e 's/.\{02\}$//')   
                               h2=$(echo $int2 | sed -e 's/.\{02\}$//')   
                               MINUTES3=$(echo $int3 | sed -e 's/.\{02\}//')
                               m3=$(echo $int3 | sed -e 's/.\{02\}//')
                               HEURES3=$(echo $int3 | sed -e 's/.\{02\}$//')   
                               h3=$(echo $int3 | sed -e 's/.\{02\}$//')   
                               MINUTES4=$(echo $int4 | sed -e 's/.\{02\}//')
                               m4=$(echo $int4 | sed -e 's/.\{02\}//')
                               HEURES4=$(echo $int4 | sed -e 's/.\{02\}$//')   
                               h4=$(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}h$MINUTES1:$HEURES2${h}h$MINUTES2:$HEURES3${h}h$MINUTES3:$HEURES4${h}h$MINUTES4" >> $FILE_HCONF
  echo "$PCUSER=$NumDAY=$h1${h}h$m1:$h2${h}h$m2:$h3${h}h$m3:$h4${h}h$m4" >> $FILE_HCONF
                               echo "$MINUTES2 $HEURES2 * * ${DAYSCRON[$NumDAY]} root /usr/bin/skill -KILL -u$PCUSER" >> /etc/cron.d/CTparental${DAYS[$NumDAY]}
                               echo "$m2 $h2 * * ${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]}
      echo "$m4 $h4 * * ${DAYSCRON[$NumDAY]} root /usr/bin/skill -KILL -u$PCUSER" >> /etc/cron.d/CTparental${DAYS[$NumDAY]}
      for count in 1 2 3 4 5
      do
                              echo "$(timecronalert $count $h2 $m2 $NumDAY) root export DISPLAY=:0.0 && export XAUTHORITY=$HOMEPCUSER/.Xauthority && sudo -u $PCUSER  /usr/bin/notify-send -u critical \"Alerte CTparental\" \"fermeture de session dans $count minutes \" " >> /etc/cron.d/CTparental${DAYS[$NumDAY]}
                              echo "$(timecronalert $count $h4 $m4 $NumDAY) root export DISPLAY=:0.0 && export XAUTHORITY=$HOMEPCUSER/.Xauthority && sudo -u $PCUSER  /usr/bin/notify-send -u critical \"Alerte CTparental\" \"fermeture de session dans $count minutes\" " >> /etc/cron.d/CTparental${DAYS[$NumDAY]}
      done
                           
                               break   
                               break   
                           else
                           else
Ligne 978 : Ligne 1 111 :
   echo >> $FILE_HCONF
   echo >> $FILE_HCONF
$SED "s?^HOURSCONNECT.*?HOURSCONNECT=ON?g" $FILE_CONF
$SED "s?^HOURSCONNECT.*?HOURSCONNECT=ON?g" $FILE_CONF
$CMDSERVICE$namservicecrond restart
$CRONrestart
}
}


Ligne 993 : Ligne 1 126 :
$SED "s?^HOURSCONNECT.*?HOURSCONNECT=OFF?g" $FILE_CONF
$SED "s?^HOURSCONNECT.*?HOURSCONNECT=OFF?g" $FILE_CONF


$CMDSERVICE$namservicecrond restart
$CRONrestart
}
 
 
listeusers () {
TABUSER=( " $(getent passwd | cut -d":" -f1,3) " )
for LIGNES in $TABUSER
do
#echo $(echo $LIGNES | cut -d":" -f2)
if [ $(echo $LIGNES | cut -d":" -f2) -ge $UIDMINUSER ] ;then
echo $LIGNES | cut -d":" -f1
fi
done
}
}


Ligne 1 003 : Ligne 1 148 :
       if [ -f $DIRPAM$FILE ];then
       if [ -f $DIRPAM$FILE ];then
         if [ $(cat $DIRPAM$FILE | grep -c "account required pam_time.so") -eq 0  ] ; then
         if [ $(cat $DIRPAM$FILE | grep -c "account required pam_time.so") -eq 0  ] ; then
             echo "account required pam_time.so" >> $DIRPAM$FILE
             $SED "1i account required pam_time.so" $DIRPAM$FILE
         fi
         fi
         TESTGESTIONNAIRE=$TESTGESTIONNAIRE\ $FILE
         TESTGESTIONNAIRE=$TESTGESTIONNAIRE\ $FILE
Ligne 1 009 : Ligne 1 154 :
   done
   done
   if [ $( echo $TESTGESTIONNAIRE | wc -m ) -eq 1 ] ; then
   if [ $( echo $TESTGESTIONNAIRE | wc -m ) -eq 1 ] ; then
       echo "Aucun gestionner de session connu , n'a été détecté."
       echo "Aucun gestionnaire 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 contrôle horaire des connexions"
       desactivetimelogin
       desactivetimelogin
       exit 1
       exit 1
Ligne 1 024 : Ligne 1 169 :
   done
   done
    
    
   for PCUSER in `cat /etc/passwd | cut -d":" -f1,3| grep -E [1-9][0-9][0-9][0-9] | cut -d ":" -f1`
   for PCUSER in `listeusers`
   do
   do
  HOMEPCUSER=$(getent passwd "$PCUSER" | cut -d ':' -f6)
   HORAIRESPAM=""
   HORAIRESPAM=""
   userisconfigured="0"
   userisconfigured="0"
Ligne 1 052 : Ligne 1 198 :
echo "$m2 $h2 * * ${DAYSCRON[$NumDAY]} root /usr/bin/skill -KILL -u$PCUSER" >> /etc/cron.d/CTparental${DAYS[$NumDAY]}
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]}
echo "$m4 $h4 * * ${DAYSCRON[$NumDAY]} root /usr/bin/skill -KILL -u$PCUSER" >> /etc/cron.d/CTparental${DAYS[$NumDAY]}
for count in 1 2 3 4 5
do
echo "$(timecronalert $count $h2 $m2 $NumDAY) root export DISPLAY=:0.0 && export XAUTHORITY=$HOMEPCUSER/.Xauthority && sudo -u $PCUSER  /usr/bin/notify-send -u critical \"Alerte CTparental\" \"fermeture de session dans $count minutes \" " >> /etc/cron.d/CTparental${DAYS[$NumDAY]}
echo "$(timecronalert $count $h4 $m4 $NumDAY) root export DISPLAY=:0.0 && export XAUTHORITY=$HOMEPCUSER/.Xauthority && sudo -u $PCUSER  /usr/bin/notify-send -u critical \"Alerte CTparental\" \"fermeture de session dans $count minutes \" " >> /etc/cron.d/CTparental${DAYS[$NumDAY]}
userisconfigured="1"
userisconfigured="1"
done


else
else
Ligne 1 060 : Ligne 1 211 :
          HORAIRESPAM="$HORAIRESPAM${DAYSPAM[$NumDAY]}$h1$m1-$h2$m2|"
          HORAIRESPAM="$HORAIRESPAM${DAYSPAM[$NumDAY]}$h1$m1-$h2$m2|"
        fi
        fi
for count in 1 2 3 4 5
do
echo "$(timecronalert $count $h2 $m2 $NumDAY) root export DISPLAY=:0.0 && export XAUTHORITY=$HOMEPCUSER/.Xauthority && sudo -u $PCUSER  /usr/bin/notify-send -u critical \"Alerte CTparental\" \"fermeture de session dans $count minutes \" " >> /etc/cron.d/CTparental${DAYS[$NumDAY]}
done
echo "$m2 $h2 * * ${DAYSCRON[$NumDAY]} root /usr/bin/skill -KILL -u$PCUSER" >> /etc/cron.d/CTparental${DAYS[$NumDAY]}
echo "$m2 $h2 * * ${DAYSCRON[$NumDAY]} root /usr/bin/skill -KILL -u$PCUSER" >> /etc/cron.d/CTparental${DAYS[$NumDAY]}
userisconfigured="1"
userisconfigured="1"
fi
fi
Ligne 1 075 : Ligne 1 231 :


$SED "s?^HOURSCONNECT.*?HOURSCONNECT=ON?g" $FILE_CONF
$SED "s?^HOURSCONNECT.*?HOURSCONNECT=ON?g" $FILE_CONF
$CMDSERVICE$namservicecrond restart
$CRONrestart
}
}


Ligne 1 082 : Ligne 1 238 :
usage="Usage: CTparental.sh    {-i }|{ -u }|{ -dl }|{ -ubl }|{ -rl }|{ -on }|{ -off }|{ -cble }|{ -dble }
usage="Usage: CTparental.sh    {-i }|{ -u }|{ -dl }|{ -ubl }|{ -rl }|{ -on }|{ -off }|{ -cble }|{ -dble }
                               |{ -tlo }|{ -tlu }|{ -uhtml }|{ -aupon }|{ -aupoff }|{ -aup }  
                               |{ -tlo }|{ -tlu }|{ -uhtml }|{ -aupon }|{ -aupoff }|{ -aup }  
-i      => Install le controll parental sur l'ordinateur (pc de bureau) peut ètre utiliser avec
-i      => Installe le contrôle parental sur l'ordinateur (pc de bureau). Peut être utilisé avec
           un paramètre suplémentaire pour indiquer un chemin de sources pour la page web de redirection.
           un paramètre supplémentaire pour indiquer un chemin de sources pour la page web de redirection.
           exemple : CTparental.sh -i /home/toto/html/
           exemple : CTparental.sh -i -dirhtml /home/toto/html/
           si pas d'option le \"sens interdit\" est utiliser par default.
           si pas d'option le \"sens interdit\" est utilisé par défaut.
-u      => désinstall le controll parental de l'ordinateur (pc de bureau)
-u      => désinstalle le contrôle parental de l'ordinateur (pc de bureau)
-dl    => mais a jour le controll a partir de la black liste de l'université de toulouse
-dl    => met à jour le contrôle parental à partir de la blacklist de l'université de Toulouse
-ubl    => A faire aprés chaque modification du fichier $DNS_FILTER_OSSI
-ubl    => A faire après chaque modification du fichier $DNS_FILTER_OSSI
-rl    => A faire aprés chaque modification manuel du fichier $DREAB
-rl    => A faire après chaque modification manuelle du fichier $DREAB
-on    => Active le controll parental
-on    => Active le contrôle parental
-off    => Désactive le controll parental
-off    => Désactive le contrôle parental
-cble  => Configure du mode de filtrage par liste blanche ou par liste noir(default) ainssi que les  
-cble  => Configure le mode de filtrage par liste blanche ou par liste noire (défaut) ainsi que les  
           catégories que l'on veux activer.
           catégories que l'on veut activer.
-dble  => Remet les catégories activent par défaut et filtrage par liste noir.
-dble  => Remet les catégories actives par défaut et le filtrage par liste noire.
-tlo    => Active est paramètre les restrictions horaire de login pour les utilisateurs.
-tlo    => Active et paramètre les restrictions horaires de login pour les utilisateurs.
           Compatible avec les gestionnaire de sessions suivant $GESTIONNAIREDESESSIONS .
           Compatible avec les gestionnaire de sessions suivant $GESTIONNAIREDESESSIONS .
-tlu    => Desative les restrictions horaire de login pour les utilisateurs.
-tlu    => Désactive les restrictions horaires de login pour les utilisateurs.
-uhtml  => mait a jour la page de redirection a partir d'un repertoir source ou par defaut avec  
-uhtml  => met à jour la page de redirection à partir d'un répertoire source ou par défaut avec  
             le \"sens interdit\".
             le \"sens interdit\".
             exemples:
             exemples:
                     - avec un repertoir source : CTparental.sh -uhtml /home/toto/html/
                     - avec un repertoire source : CTparental.sh -uhtml -dirhtml /home/toto/html/
       - par default :              CTparental.sh -uhtml
       - par défaut :              CTparental.sh -uhtml
             permet aussi de changer le couple login ,mots de passe de l'interface web.
             permet aussi de changer le couple login, mot de passe de l'interface web.
-aupon  => active la mise ajour automatique de la black liste de toulouse (tous les 7 jours).
-aupon  => active la mise à jour automatique de la blacklist de Toulouse (tous les 7 jours).
-aupoff => desactve la mise ajour automatique de la black liste de toulouse.
-aupoff => désactive la mise à jour automatique de la blacklist de Toulouse.
-aup    => comme -dl mais seulement si il n'y a pas eu de mise a jour depuis plus de 7 jours.
-aup    => comme -dl mais seulement si il n'y a pas eu de mise à jour depuis plus de 7 jours.
-nodep  => si placer aprés -i ou -u permet de ne pas installer/désinstaller les dépendances, utiles si
            on préfaire les installer a la mains , ou pour le scripte de postinst et prerm
            du deb.
            exemples:
                    CTparental.sh -i -nodep
    CTparental.sh -i -dirhtml /home/toto/html/ -nodep 
    CTparental.sh -u -nodep
-nomanuel => utiliser uniquement pour le scripte de postinst et prerm
            du deb.
  "
  "
case $args in
case $arg1 in
   -\? | -h* | --h*)
   -\? | -h* | --h*)
       echo "$usage"
       echo "$usage"
Ligne 1 188 : Ligne 1 353 :
     -aup | --autoupdate )
     -aup | --autoupdate )
       autoupdate
       autoupdate
      ;;
    -listusers )
      listeusers
       ;;
       ;;
        
        
Ligne 1 209 : Ligne 1 377 :
</HEAD>
</HEAD>
<body>
<body>
<?
<?php
function form_filter ($form_content)
function form_filter ($form_content)
{
{
Ligne 1 224 : Ligne 1 392 :
   $Language = strtolower(substr(chop($Langue[0]),0,2)); }
   $Language = strtolower(substr(chop($Langue[0]),0,2)); }
if($Language == 'fr'){
if($Language == 'fr'){
   $l_hours_error1="un mauvais format horaire a étais trouver:exemple 8h30 doit c'écrir 08h30";
  $l_switch_LogOFF="Déconnection";
   $l_hours_error2="incoérance horaire: ";
   $l_hours_error1="un mauvais format horaire a été trouvé :exemple 8h30 doit s'écrire 08h30";
   $l_hours_on = "Les horaires de connection sont actuellement activés";
   $l_hours_error2="incohérence horaire : ";
   $l_hours_off = "Les horaires de connection sont actuellement désactivés";
   $l_hours_on = "Les horaires de connexion sont actuellement activés";
   $l_switch_hours_off = "Désactiver les horaires de connection";
   $l_hours_off = "Les horaires de connexion sont actuellement désactivés";
   $l_switch_hours_on = "Activer les horaires de connection";
   $l_switch_hours_off = "Désactiver les horaires de connexion";
   $l_hours1 = "Heures de connections autorisées";
   $l_switch_hours_on = "Activer les horaires de connexion";
   $l_hours1 = "Heures de connexions autorisées";
   $l_switch_Init_bl = "Init Catégories";
   $l_switch_Init_bl = "Init Catégories";
   $l_auto_update_on = "La mise a jour de la blackliste de Toulouse tout les 7 jour est activé";
   $l_auto_update_on = "La mise à jour de la blacklist de Toulouse tous les 7 jours est activée";
   $l_auto_update_off = "La mise a jour de la blackliste de Toulouse tout les 7 jour est désactivé";
   $l_auto_update_off = "La mise à jour de la blacklist de Toulouse tous les 7 jours est désactivée";
   $l_switch_auto_update_on = "Activer Maj Auto";
   $l_switch_auto_update_on = "Activer Maj Auto";
   $l_switch_auto_update_off = "Désactiver Maj Auto";
   $l_switch_auto_update_off = "Désactiver Maj Auto";
   $l_fmenu_black = "Firlrage par BlackListe";
   $l_fmenu_black = "Filtrage par BlackList";
   $l_fmenu_white = "Firlrage par WhiteListe";
   $l_fmenu_white = "Filtrage par WhiteList";
   $l_title1 = "Filtrage de noms de domaine ";
   $l_title1 = "Filtrage de noms de domaine ";
   $l_error_open_file="Erreur d'ouverture du fichier";
   $l_error_open_file="Erreur d'ouverture du fichier";
Ligne 1 254 : Ligne 1 423 :
   $l_reject_bl="Rejeter";
   $l_reject_bl="Rejeter";
   $l_warning="Temps estimé : une minute.";
   $l_warning="Temps estimé : une minute.";
   $l_specific_filtering="Filtrage special";
   $l_specific_filtering="Filtrage spécial";
   $l_forbidden_dns="Noms de domaine filtrés";
   $l_forbidden_dns="Noms de domaine filtrés";
   $l_forbidden_dns_explain="Entrez un nom de domaine par ligne (exemple : domaine.org)";
   $l_forbidden_dns_explain="Entrez un nom de domaine par ligne (exemple : domaine.org)";
Ligne 1 260 : Ligne 1 429 :
   $l_rehabilitated_dns="Noms de domaine réhabilités";
   $l_rehabilitated_dns="Noms de domaine réhabilités";
   $l_rehabilitated_dns_explain_bl="1-Entrez ici des noms de domaine bloqués par la liste noire <BR> que vous souhaitez réhabiliter.";
   $l_rehabilitated_dns_explain_bl="1-Entrez ici des noms de domaine bloqués par la liste noire <BR> que vous souhaitez réhabiliter.";
   $l_rehabilitated_dns_explain_wl="2-Entrez ici des noms de domaine autorisée en plus de ceux <BR> de la liste blanche de Toulouze.";
   $l_rehabilitated_dns_explain_wl="2-Entrez ici des noms de domaine autorisés en plus de ceux <BR> de la liste blanche de Toulouse.";
   $l_add_to_bl="Noms de domaine ajoutés à la liste noire";
   $l_add_to_bl="Noms de domaine ajoutés à la liste noire";
   $l_record="Enregistrer les modifications";
   $l_record="Enregistrer les modifications";
Ligne 1 266 : Ligne 1 435 :
}
}
else {
else {
   $l_hours_error1="un mauvais format horaire a étais trouver:exemple 8h30 doit c'écrir 08h30";
  $l_switch_LogOFF="Logout";
   $l_hours_error2="incoérance horaire: ";
   $l_hours_error1="Un mauvais format horaire a été trouvé : exemple 8h30 doit s'écrire 08h30";
   $l_hours_on = "Les horaires de connection sont actuellement activés";
   $l_hours_error2="incohérence horaire : ";
   $l_hours_off = "Les horaires de connection sont actuellement désactivés";
   $l_hours_on = "Les horaires de connexion sont actuellement activés";
   $l_switch_hours_off = "Désactiver les horaires de connection";
   $l_hours_off = "Les horaires de connexion sont actuellement désactivés";
   $l_switch_hours_on = "Activer les horaires de connection";
   $l_switch_hours_off = "Désactiver les horaires de connexion";
   $l_hours1 = "Heures de connections autorisées";
   $l_switch_hours_on = "Activer les horaires de connexion";
   $l_hours1 = "Heures de connexions autorisées";
   $l_switch_Init_bl = "Init Catégories";
   $l_switch_Init_bl = "Init Catégories";
   $l_auto_update_on = "La mise a jour de la blackliste de Toulouse tout les 7 jour est activé";
   $l_auto_update_on = "La mise à jour de la blacklist de Toulouse tous les 7 jours est activée";
   $l_auto_update_off = "La mise a jour de la blackliste de Toulouse tout les 7 jour est désactivé";
   $l_auto_update_off = "La mise à jour de la blacklist de Toulouse tous les 7 jours est désactivée";
   $l_switch_auto_update_on = "Activer Maj Auto";
   $l_switch_auto_update_on = "Activer Maj Auto";
   $l_switch_auto_update_off = "Désactiver Maj Auto";
   $l_switch_auto_update_off = "Désactiver Maj Auto";
   $l_fmenu_black = "Firlrage par BlackListe";
   $l_fmenu_black = "Filtrage par BlackList";
   $l_fmenu_white = "Firlrage par WhiteListe";
   $l_fmenu_white = "Filtrage par WhiteList";
   $l_title1 = "Domain names filtering";
   $l_title1 = "Domain names filtering";
   $l_error_open_file="Error opening the file";
   $l_error_open_file="Error opening the file";
Ligne 1 286 : Ligne 1 456 :
   $l_switch_filtering_on="Switch the Filter on";
   $l_switch_filtering_on="Switch the Filter on";
   $l_switch_filtering_off="Switch the Filter off";
   $l_switch_filtering_off="Switch the Filter off";
   $l_main_bl="Blacklist/Whiteliste";
   $l_main_bl="Blacklist/Whitelist";
   $l_bl_version="Current version : ";
   $l_bl_version="Current version : ";
   $l_bl_categories_bl="Choice of filtered categories";
   $l_bl_categories_bl="Choice of filtered categories";
   $l_bl_categories_wl="Choice of autorised categories";
   $l_bl_categories_wl="Choice of authorized categories";
   $l_download_bl="Download the last version";
   $l_download_bl="Download the last version";
   $l_fingerprint="The digital fingerprint of the downloaded blacklist is : ";
   $l_fingerprint="The digital fingerprint of the downloaded blacklist is : ";
Ligne 1 302 : Ligne 1 472 :
   $l_rehabilitated_dns="Rehabilitated domain names";
   $l_rehabilitated_dns="Rehabilitated domain names";
   $l_rehabilitated_dns_explain_bl="Enter here domain names that are blocked by the blacklist <BR> and you want to rehabilitate.";
   $l_rehabilitated_dns_explain_bl="Enter here domain names that are blocked by the blacklist <BR> and you want to rehabilitate.";
   $l_rehabilitated_dns_explain_wl="2-Entrez ici des noms de domaine autorisée en plus de ceux <BR> de la liste blanche de Toulouze.";
   $l_rehabilitated_dns_explain_wl="2-Entrez ici des noms de domaine autorisés en plus de ceux <BR> de la liste blanche de Toulouse.";
   $l_add_to_bl="Domain names to add to blacklist";
   $l_add_to_bl="Domain names to add to blacklist";
   $l_record="Save changes";
   $l_record="Save changes";
Ligne 1 313 : Ligne 1 483 :
$hconf_file="/usr/local/etc/CTparental/CThours.conf";
$hconf_file="/usr/local/etc/CTparental/CThours.conf";
$wl_domains="/usr/local/etc/CTparental/domaine-rehabiliter";
$wl_domains="/usr/local/etc/CTparental/domaine-rehabiliter";
$bl_domains="/usr/local/etc/CTparental/blackliste-local";
$bl_domains="/usr/local/etc/CTparental/blacklist-local";
# default values
# default values


Ligne 1 320 : Ligne 1 490 :
switch ($choix)
switch ($choix)
{
{
case 'LogOFF' :
header('HTTP/1.0 401 Unauthorized');
header('WWW-Authenticate: Digest realm="interface admin"');
exit;
break;
case 'BL_On' :
case 'BL_On' :
exec ("sudo -u root /usr/local/bin/CTparental.sh -on");
exec ("sudo -u root /usr/local/bin/CTparental.sh -on");
Ligne 1 382 : Ligne 1 557 :
if (strstr($line,$selectuser) == false)
if (strstr($line,$selectuser) == false)
{
{
fwrite($pointeur,$line); # on reécrit toutes les lignes ne corepondent pas a l'utilisateur selectionner
fwrite($pointeur,$line); # on reécrit toutes les lignes ne correspondant pas à l'utilisateur sélectionné
}
}
Ligne 1 473 : Ligne 1 648 :
echo "<TABLE width='100%' border=1 cellspacing=0 cellpadding=0>";
echo "<TABLE width='100%' border=1 cellspacing=0 cellpadding=0>";
echo "<tr><td valign='middle' align='left'>";
echo "<tr><td valign='middle' align='left'>";
 
echo "<CENTER>";
echo "<FORM action='$_SERVER[PHP_SELF]' method=POST>";
echo "<input type=hidden name='choix' value=\"LogOFF\">";
echo "<input type=submit value=\"$l_switch_LogOFF\">";
echo "</FORM>";
echo "</CENTER>";
if (is_file ($conf_file))
if (is_file ($conf_file))
{
{
Ligne 1 480 : Ligne 1 660 :
{
{
foreach ($tab as $line)
foreach ($tab as $line)
{
{
$field=explode("=", $line);
$field=explode("=", $line);
if ($field[0] == "LASTUPDATE") {$LASTUPDATE=trim($field[2]);}
if ($field[0] == "LASTUPDATE") {$LASTUPDATE=trim($field[2]);}
if ($field[0] == "DNSMASQ") {$DNSMASQ=trim($field[1]);}
if ($field[0] == "DNSMASQ") {$DNSMASQ=trim($field[1]);}
if ($field[0] == "AUTOUPDATE") {$AUTOUPDATE=trim($field[1]);}
if ($field[0] == "AUTOUPDATE") {$AUTOUPDATE=trim($field[1]);}
if ($field[0] == "HOURSCONNECT") {$HOURSCONNECT=trim($field[1]);}
if ($field[0] == "HOURSCONNECT") {$HOURSCONNECT=trim($field[1]);}
                          
                          
}
}
}
}
}
}
else { echo "$l_error_open_file $conf_file";}
else { echo "$l_error_open_file $conf_file";}
if ($DNSMASQ <> "OFF")
if ($DNSMASQ <> "OFF")
{
{
echo "<CENTER><H3>$l_dnsfilter_on</H3></CENTER>";
echo "<CENTER><H3>$l_dnsfilter_on</H3></CENTER>";
  echo "<FORM action='$_SERVER[PHP_SELF]' method=POST>";
  echo "<FORM action='$_SERVER[PHP_SELF]' method=POST>";
echo "<input type=hidden name='choix' value=\"BL_Off\">";
echo "<input type=hidden name='choix' value=\"BL_Off\">";
echo "<input type=submit value=\"$l_switch_filtering_off\">";
echo "<input type=submit value=\"$l_switch_filtering_off\">";
}
}
else
else
{
{
echo "<CENTER><H3>$l_dnsfilter_off</H3></CENTER>";
echo "<CENTER><H3>$l_dnsfilter_off</H3></CENTER>";
  echo "<FORM action='$_SERVER[PHP_SELF]' method=POST>";
  echo "<FORM action='$_SERVER[PHP_SELF]' method=POST>";
echo "<input type=hidden name='choix' value=\"BL_On\">";
echo "<input type=hidden name='choix' value=\"BL_On\">";
echo "<input type=submit value=\"$l_switch_filtering_on\">";
echo "<input type=submit value=\"$l_switch_filtering_on\">";
}
}
echo "</FORM>";
echo "</FORM>";
 
if ( $DNSMASQ<>"OFF"){
if ( $DNSMASQ<>"OFF"){
include 'dns.php';
include 'dns.php';
Ligne 1 543 : Ligne 1 724 :
'''dns.php'''
'''dns.php'''
<code php>
<code php>
<?
<?php
if (isset($_GET['filtragemode'])){ $filtragemode=$_GET['filtragemode']; } else {$filtragemode=$DNSMASQ;}
if (isset($_GET['filtragemode'])){ $filtragemode=$_GET['filtragemode']; } else {$filtragemode=$DNSMASQ;}
if ($filtragemode == 'WHITE')
if ($filtragemode == 'WHITE')
Ligne 1 618 : Ligne 1 799 :
else {echo "<center>$l_bl_categories_wl</center></td></tr>";}
else {echo "<center>$l_bl_categories_wl</center></td></tr>";}


//on lit et on interprete le fichier de catégories
//on lit et on interprète le fichier de catégories
$cols=1;  
$cols=1;  
if (file_exists($bl_categories))
if (file_exists($bl_categories))
Ligne 1 632 : Ligne 1 813 :
echo "<td><a href='bl_categories_help.php?cat=$categorie' target='cat_help' onclick=window.open('bl_categories_help.php','cat_help','width=600,height=150,toolbar=no,scrollbars=no,resizable=yes') title='categories help page'>$categorie</a><br>";
echo "<td><a href='bl_categories_help.php?cat=$categorie' target='cat_help' onclick=window.open('bl_categories_help.php','cat_help','width=600,height=150,toolbar=no,scrollbars=no,resizable=yes') title='categories help page'>$categorie</a><br>";
echo "<input type='checkbox' name='chk-$categorie'";
echo "<input type='checkbox' name='chk-$categorie'";
// la categorie n'existe pas dans le fichier de categorie activer -> categorie non selectionnée
// la catégorie n'existe pas dans le fichier de catégorie activé -> categorie non selectionnée
                         $str = file_get_contents($bl_categories_enabled);
                         $str = file_get_contents($bl_categories_enabled);
if (strpos($str, $categorie)===false) { echo ">";}
if (strpos($str, $categorie)===false) { echo ">";}
Ligne 1 675 : Ligne 1 856 :
<code php>
<code php>


<?
<?php
# Choice of language
# Choice of language
$Language = 'en';
$Language = 'en';
Ligne 1 682 : Ligne 1 863 :
   $Language = strtolower(substr(chop($Langue[0]),0,2)); }
   $Language = strtolower(substr(chop($Langue[0]),0,2)); }
if($Language == 'fr'){
if($Language == 'fr'){
   $l_selectuser="l'utilisateur selectionner est: ";
   $l_selectuser="l'utilisateur selectionné est : ";
   $l_userisnotselect="Veuillez selectionner un utilisateur.";
   $l_userisnotselect="Veuillez selectionner un utilisateur.";
   $l_isadmin = "7j/7 24h/24";
   $l_isadmin = "7j/7 24h/24";
   $l_valide = "Enregistrer";
   $l_valide = "Enregistrer";
   $to = " a " ;
   $to = " à " ;
   $and = " et " ;
   $and = " et " ;
   $l_select = "Selectionner";
   $l_select = "Sélectionner";
   $l_info1 = "08h00 a 24h00 ou 08h00 a 12h00 et 14h00 a 24h00";
   $l_info1 = "08h00 à 24h00 ou 08h00 à 12h00 et 14h00 à 24h00";
   $week = array( "lundi","mardi","mercredi","jeudi","vendredi","samedi","dimanche");
   $week = array( "lundi","mardi","mercredi","jeudi","vendredi","samedi","dimanche");
}
}
else {
else {
   $l_userisnotselect="Veuillez selectionner un utilisateur.";
   $l_userisnotselect="Veuillez sélectionner un utilisateur.";
   $l_selectuser="l'utilisateur selectionner est: ";
   $l_selectuser="l'utilisateur sélectionné est : ";
   $l_isadmin = "7j/7 24h/24";
   $l_isadmin = "7j/7 24h/24";
   $l_valide = "Enregistrer";
   $l_valide = "Enregistrer";
Ligne 1 700 : Ligne 1 881 :
   $to = " to " ;
   $to = " to " ;
   $and = " and " ;
   $and = " and " ;
   $l_info1 = "08h00 a 24h00 ou 08h00 a 12h00 et 14h00 a 24h00";
   $l_info1 = "08h00 à 24h00 ou 08h00 à 12h00 et 14h00 à 24h00";
   $week = array( "lundi","mardi","mercredi","jeudi","vendredi","samedi","dimanche");
   $week = array( "lundi","mardi","mercredi","jeudi","vendredi","samedi","dimanche");
}
}
Ligne 1 708 : Ligne 1 889 :
### on lit est on interprète le fichier CTparental.conf
### on lit est on interprète le fichier CTparental.conf
echo "<TABLE width='100%' border=0 cellspacing=0 cellpadding=0>";
echo "<TABLE width='100%' border=0 cellspacing=0 cellpadding=0>";
exec ("cat /etc/passwd | cut -d\":\" -f1,3| grep -E [1-9][0-9][0-9][0-9] | cut -d \":\" -f1",$USERSPC); # récupération des utilisateurs du poste.(UID >= 1000)
exec ("/usr/local/bin/CTparental.sh -listusers 2> /dev/null",$USERSPC); # récupération des utilisateurs du poste.(UID >= 1000)
echo "<FORM action='$_SERVER[PHP_SELF]' method=POST>";
echo "<FORM action='$_SERVER[PHP_SELF]' method=POST>";
echo "<select name=\"selectuser\">";
echo "<select name=\"selectuser\">";
Ligne 1 775 : Ligne 1 956 :
<HEAD>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<?
<?php
$bl_dir="/usr/local/etc/CTparental/dnsfilter-available/";
$bl_dir="/usr/local/etc/CTparental/dnsfilter-available/";
# Choice of language
# Choice of language
199

modifications

Menu de navigation