199
modifications
Aucun résumé des modifications |
(update v 3.80) |
||
Ligne 12 : | Ligne 12 : | ||
# This script is distributed under the Gnu General Public License (GPL) | # This script is distributed under the Gnu General Public License (GPL) | ||
arg1=${1} | arg1=${1} | ||
if [ $# -ge 1 ];then | |||
if [ $arg1 != "-listusers" ] ; then | if [ $arg1 != "-listusers" ] ; then | ||
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. | 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. | ||
echo "Il vous faut des droits root pour lancer ce script" | echo "Il vous faut des droits root pour lancer ce script" | ||
exit 1 | exit 1 | ||
fi | |||
fi | fi | ||
fi | fi | ||
Ligne 58 : | Ligne 60 : | ||
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_GCTOFFCONF="$DIR_CONF/GCToff.conf" | |||
FILE_HCOMPT="$DIR_CONF/CThourscompteur" | |||
FILE_HCONF="$DIR_CONF/CThours.conf" | FILE_HCONF="$DIR_CONF/CThours.conf" | ||
if [ ! -f $FILE_CONF ] ; then | if [ ! -f $FILE_CONF ] ; then | ||
Ligne 67 : | Ligne 71 : | ||
AUTOUPDATE=OFF | AUTOUPDATE=OFF | ||
HOURSCONNECT=OFF | HOURSCONNECT=OFF | ||
GCTOFF=OFF | |||
EOF | EOF | ||
fi | fi | ||
Ligne 77 : | Ligne 84 : | ||
tempDIR="/tmp/alcasar" | tempDIR="/tmp/alcasar" | ||
tempDIRRamfs="/tmp/alcasarRamfs" | |||
if [ ! -d $tempDIRRamfs ] ; then | |||
mkdir $tempDIRRamfs | |||
fi | |||
RougeD="\033[1;31m" | RougeD="\033[1;31m" | ||
BleuD="\033[1;36m" | BleuD="\033[1;36m" | ||
Ligne 95 : | Ligne 106 : | ||
#### COMMANDES de services par DEFAULT ##### | #### COMMANDES de services par DEFAULT ##### | ||
CMDSERVICE=${CMDSERVICE:="service "} | CMDSERVICE=${CMDSERVICE:="service "} | ||
CRONstart=${CRONstart:="$CMDSERVICE | CRONstart=${CRONstart:="$CMDSERVICE cron start "} | ||
CRONstop=${CRONstop:="$CMDSERVICE | CRONstop=${CRONstop:="$CMDSERVICE cron stop "} | ||
CRONrestart=${CRONrestart:="$CMDSERVICE | CRONrestart=${CRONrestart:="$CMDSERVICE cron restart "} | ||
LIGHTTPDstart=${LIGHTTPDstart:="$CMDSERVICE lighttpd start "} | LIGHTTPDstart=${LIGHTTPDstart:="$CMDSERVICE lighttpd start "} | ||
LIGHTTPDstop=${LIGHTTPDstop:="$CMDSERVICE lighttpd stop "} | LIGHTTPDstop=${LIGHTTPDstop:="$CMDSERVICE lighttpd stop "} | ||
Ligne 131 : | Ligne 142 : | ||
REALMADMINHTTPD=${REALMADMINHTTPD:="interface admin"} | REALMADMINHTTPD=${REALMADMINHTTPD:="interface admin"} | ||
CMDINSTALL="" | CMDINSTALL="" | ||
NOXSESSIOND=${NOXSESSIOND:=0} | |||
LOGONDDIR=${LOGONDDIR:="/etc/X11/Xsession.d"} | |||
if [ ! -d $LOGONDDIR ];then | |||
mkdir $LOGONDDIR | |||
fi | |||
STARTUPKDM=${STARTUPKDM:=/etc/kde/kdm/Xsetup} | |||
STARTUPGDM=${STARTUPGDM:=/etc/gdm/PostLogin/Default} | |||
CONFLIGHTDM=${CONFLIGHTDM:=/etc/lightdm/lightdm.conf} | |||
if [ $(cat $CONFLIGHTDM | grep -c ^greeter-setup-script= ) -eq 1 ];then | |||
STARTUPLIGHTDM=$(cat $CONFLIGHTDM | grep ^greeter-setup-script= | cut -d"=" -f2 ) | |||
else | |||
STARTUPLIGHTDM=${STARTUPLIGHTDM:=/usr/local/bin/lightdm-greeter-script} | |||
fi | |||
if [ $(yum help | wc -l ) -ge 50 ] ; then | |||
XLOGONSCRIPTE=${XLOGONSCRIPTE:="$LOGONDDIR/10x11-CTparentalLogin"} | |||
XLOGONSCRIPTEALT=${XLOGONSCRIPTEALT:="/usr/local/bin/10x11-CTparentalLogin"} | |||
ADDUSERTOGROUP=${ADDUSERTOGROUP:="gpasswd -a "} | |||
DELUSERTOGROUP=${DELUSERTOGROUP:="gpasswd -d "} | |||
if [ $(yum help 2> /dev/null | wc -l ) -ge 50 ] ; then | |||
## "Distribution basée sur yum exemple redhat, fedora..." | ## "Distribution basée sur yum exemple redhat, fedora..." | ||
CMDINSTALL=${CMDINSTALL:="yum install "} | CMDINSTALL=${CMDINSTALL:="yum install "} | ||
Ligne 159 : | Ligne 188 : | ||
interface_WAN=$(ip route | awk '/^default via/{print $5}') # suppose que la passerelle est la route par default | interface_WAN=$(ip route | awk '/^default via/{print $5}' | sort -u ) # suppose que la passerelle est la route par default | ||
if [ -f $DIR_CONF/resolv.conf.sav ];then | if [ -f $DIR_CONF/resolv.conf.sav ];then | ||
Ligne 170 : | Ligne 199 : | ||
PRIVATE_IP="127.0.0.10" | PRIVATE_IP="127.0.0.10" | ||
FILE_tmp="$ | |||
FILE_tmp=${FILE_tmp:="$tempDIRRamfs/filetmp.txt"} | |||
FILE_tmpSizeMax=${FILE_tmpSizeMax:="128M"} # 70 Min, Recomend 128M | |||
LOWRAM=${LOWRAM:=0} | |||
if [ $LOWRAM -eq 0 ] ; then | |||
MFILEtmp="mount -t tmpfs -o size=$FILE_tmpSizeMax tmpfs $tempDIRRamfs" | |||
UMFILEtmp="umount $tempDIRRamfs" | |||
else | |||
MFILEtmp="" | |||
UMFILEtmp="" | |||
fi | |||
BL_SERVER="dsi.ut-capitole.fr" | BL_SERVER="dsi.ut-capitole.fr" | ||
CATEGORIES_ENABLED="$DIR_CONF/categories-enabled" | CATEGORIES_ENABLED="$DIR_CONF/categories-enabled" | ||
Ligne 267 : | Ligne 306 : | ||
} | } | ||
adapt() { | adapt() { | ||
echo adapt | |||
date +%H:%M:%S | |||
dnsmasqoff | dnsmasqoff | ||
$MFILEtmp | |||
if [ ! -f $DNS_FILTER_OSSI ] ; then | if [ ! -f $DNS_FILTER_OSSI ] ; then | ||
echo > $DNS_FILTER_OSSI | echo > $DNS_FILTER_OSSI | ||
Ligne 300 : | Ligne 342 : | ||
echo -n "." | echo -n "." | ||
# suppression des @IP, de caractères acccentués et des lignes commentées ou vide | # suppression des @IP, de caractères acccentués et des lignes commentées ou vide | ||
cp -f $tempDIR/blacklists/$DOMAINE/domains $FILE_tmp | |||
$SED -r '/([0-9]{1,3}\.){3}[0-9]{1,3}/d' $FILE_tmp | |||
$SED "/[äâëêïîöôüû]/d" $FILE_tmp | |||
$SED "/^#.*/d" $FILE_tmp | |||
$SED "/^$/d" $FILE_tmp | $SED "/^$/d" $FILE_tmp | ||
$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/\.\{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 | ||
Ligne 318 : | Ligne 361 : | ||
echo -n "." | echo -n "." | ||
# suppression des @IP, de caractères acccentués et des lignes commentées ou vide | # suppression des @IP, de caractères acccentués et des lignes commentées ou vide | ||
cp -f $DNS_FILTER_OSSI $FILE_tmp | |||
$SED -r '/([0-9]{1,3}\.){3}[0-9]{1,3}/d' $FILE_tmp | |||
$SED "/[äâëêïîöôüû]/d" $FILE_tmp | $SED "/[äâëêïîöôüû]/d" $FILE_tmp | ||
$SED "/^#.*/d" $FILE_tmp | $SED "/^#.*/d" $FILE_tmp | ||
Ligne 327 : | Ligne 371 : | ||
fi | fi | ||
echo | echo | ||
$UMFILEtmp | |||
rm -rf $tempDIR | rm -rf $tempDIR | ||
date +%H:%M:%S | |||
} | } | ||
catChoice() { | catChoice() { | ||
Ligne 351 : | Ligne 397 : | ||
reabdomaine () { | reabdomaine () { | ||
echo reabdomaine | |||
date +%H:%M:%S | |||
$MFILEtmp | |||
if [ ! -f $DREAB ] ; then | if [ ! -f $DREAB ] ; then | ||
cat << EOF > $DREAB | cat << EOF > $DREAB | ||
www.google.com | |||
www.google.fr | |||
EOF | EOF | ||
fi | fi | ||
Ligne 369 : | Ligne 418 : | ||
for DOMAINE in `cat $DREAB` | for DOMAINE in `cat $DREAB` | ||
do | do | ||
$SED "/$DOMAINE/d" $DIR_DNS_BLACKLIST_ENABLED/$CATEGORIE.conf | cp -f $DIR_DNS_BLACKLIST_ENABLED/$CATEGORIE.conf $FILE_tmp | ||
$SED "/$DOMAINE/d" $FILE_tmp | |||
cp -f $FILE_tmp $DIR_DNS_BLACKLIST_ENABLED/$CATEGORIE.conf | |||
done | done | ||
fi | fi | ||
Ligne 376 : | Ligne 427 : | ||
cat $DREAB | sed -e "s? ??g" | 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 | ||
$UMFILEtmp | |||
rm -f $FILE_tmp | |||
date +%H:%M:%S | |||
} | } | ||
Ligne 533 : | Ligne 587 : | ||
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) | ||
chmod | chmod 644 $FILE_CONF | ||
chown root:$GROUPHTTPD $FILE_CONF | chown root:$GROUPHTTPD $FILE_CONF | ||
cat << EOF > $MAINCONFHTTPD | cat << EOF > $MAINCONFHTTPD | ||
Ligne 695 : | Ligne 749 : | ||
chmod 660 $CATEGORIES_ENABLED | chmod 660 $CATEGORIES_ENABLED | ||
chmod 660 /etc/sudoers | chmod 660 /etc/sudoers | ||
sudotest=`grep Defaults:$USERHTTPD /etc/sudoers |wc -l` | |||
if [ $sudotest -ge "1" ] ; then | |||
$SED "s?^Defaults:$USERHTTPD.*requiretty.*?Defaults:$USERHTTPD \!requiretty?g" /etc/sudoers | |||
else | |||
echo "Defaults:$USERHTTPD !requiretty" >> /etc/sudoers | |||
fi | |||
sudotest=`grep "$USERHTTPD ALL=" /etc/sudoers |wc -l` | |||
if [ $sudotest -ge "1" ] ; then | |||
$SED "s?^$USERHTTPD.*?$USERHTTPD ALL=(ALL) NOPASSWD:/usr/local/bin/CTparental.sh -gctalist,/usr/local/bin/CTparental.sh -gctulist,/usr/local/bin/CTparental.sh -gcton,/usr/local/bin/CTparental.sh -gctoff,/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 -gctalist,/usr/local/bin/CTparental.sh -gctulist,/usr/local/bin/CTparental.sh -gcton,/usr/local/bin/CTparental.sh -gctoff,/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 | |||
sudotest=`grep %ctoff /etc/sudoers |wc -l` | |||
if [ $sudotest -ge "1" ] ; then | |||
$SED "s?^%ctoff.*?%ctoff ALL=(ALL) NOPASSWD:/usr/local/bin/CTparental.sh -off,/usr/local/bin/CTparental.sh -on?g" /etc/sudoers | |||
else | |||
echo "%ctoff ALL=(ALL) NOPASSWD:/usr/local/bin/CTparental.sh -off,/usr/local/bin/CTparental.sh -on" >> /etc/sudoers | |||
fi | |||
sudotest=`grep "ALL ALL=(ALL) NOPASSWD:/usr/local/bin/CTparental.sh" /etc/sudoers |wc -l` | |||
if [ $sudotest -ge "1" ] ; then | |||
$SED "s?^ALL ALL=(ALL) NOPASSWD:/usr/local/bin/CTparental.sh.*?ALL ALL=(ALL) NOPASSWD:/usr/local/bin/CTparental.sh -on?g" /etc/sudoers | |||
else | |||
echo "ALL ALL=(ALL) NOPASSWD:/usr/local/bin/CTparental.sh -on" >> /etc/sudoers | |||
fi | |||
unset sudotest | |||
chmod 440 /etc/sudoers | chmod 440 /etc/sudoers | ||
if [ ! -f $FILE_HCONF ] ; then | if [ ! -f $FILE_HCONF ] ; then | ||
Ligne 710 : | Ligne 785 : | ||
chown root:$GROUPHTTPD $FILE_HCONF | chown root:$GROUPHTTPD $FILE_HCONF | ||
chmod 660 $FILE_HCONF | chmod 660 $FILE_HCONF | ||
listeusers > $FILE_GCTOFFCONF | |||
chown root:$GROUPHTTPD $FILE_GCTOFFCONF | |||
chmod 660 $FILE_GCTOFFCONF | |||
if [ ! -f $FILE_HCOMPT ] ; then | |||
echo "date=$(date +%D)" > $FILE_HCOMPT | |||
fi | |||
chown root:$GROUPHTTPD $FILE_HCOMPT | |||
chmod 660 $FILE_HCOMPT | |||
chown -R root:$GROUPHTTPD $DIRHTML | chown -R root:$GROUPHTTPD $DIRHTML | ||
chown -R root:$GROUPHTTPD $DIRadminHTML | chown -R root:$GROUPHTTPD $DIRadminHTML | ||
Ligne 722 : | Ligne 806 : | ||
install () { | install () { | ||
groupadd ctoff | |||
if [ $nomanuel -eq 0 ]; then | if [ $nomanuel -eq 0 ]; then | ||
vim -h 2&> /dev/null | vim -h 2&> /dev/null | ||
Ligne 842 : | Ligne 928 : | ||
fi | fi | ||
} | } | ||
updatelistgctoff () { | |||
## on ajoutes tous les utilisateurs manquant dans la liste | |||
for PCUSER in `listeusers` | |||
do | |||
if [ $(cat $FILE_GCTOFFCONF | sed -e "s/#//g" | grep -c -E "^$PCUSER$") -eq 0 ];then | |||
echo $PCUSER >> $FILE_GCTOFFCONF | |||
fi | |||
done | |||
## on suprime tous ceux qui n'existe plus sur le pc. | |||
for PCUSER in $(cat $FILE_GCTOFFCONF | sed -e "s/#//g" ) | |||
do | |||
if [ $( listeusers | grep -c -E "^$PCUSER$") -eq 0 ];then | |||
$SED "/^$PCUSER$/d" $FILE_GCTOFFCONF | |||
$SED "/^#$PCUSER$/d" $FILE_GCTOFFCONF | |||
fi | |||
done | |||
} | |||
applistegctoff () { | |||
updatelistgctoff | |||
$ADDUSERTOGROUP root ctoff 2> /dev/null | |||
for PCUSER in $(cat $FILE_GCTOFFCONF ) | |||
do | |||
if [ $(echo $PCUSER | grep -c -v "#") -eq 1 ];then | |||
$ADDUSERTOGROUP $PCUSER ctoff 2> /dev/null | |||
else | |||
$DELUSERTOGROUP $(echo $PCUSER | sed -e "s/#//g" ) ctoff 2> /dev/null | |||
fi | |||
done | |||
} | |||
activegourpectoff () { | |||
groupadd ctoff | |||
$ADDUSERTOGROUP root ctoff | |||
if [ ! -f $STARTUPGDM ];then | |||
cat << EOF > $STARTUPGDM | |||
#!/bin/bash | |||
exit 0 | |||
EOF | |||
chmod 755 $STARTUPGDM | |||
chown root:root $STARTUPGDM | |||
fi | |||
if [ ! -f $STARTUPLIGHTDM ];then | |||
cat << EOF > $STARTUPLIGHTDM | |||
#!/bin/bash | |||
exit 0 | |||
EOF | |||
chmod 755 $STARTUPLIGHTDM | |||
chown root:root $STARTUPLIGHTDM | |||
fi | |||
if [ $NOXSESSIOND -eq 1 ];then | |||
$SED "s?\#greeter-setup-script.*?greeter-setup-script=$STARTUPLIGHTDM?g" $CONFLIGHTDM | |||
$SED "$(grep -n -E "^\#\!/bin/" $STARTUPKDM | cut -d":" -f1)a$XLOGONSCRIPTEALT &" $STARTUPKDM | |||
$SED "$(grep -n -E "^\#\!/bin/" $STARTUPGDM | cut -d":" -f1)a$XLOGONSCRIPTEALT &" $STARTUPGDM | |||
$SED "$(grep -n -E "^\#\!/bin/" $STARTUPLIGHTDM | cut -d":" -f1)a$XLOGONSCRIPTEALT &" $STARTUPLIGHTDM | |||
fi | |||
cat << EOF > $XLOGONSCRIPTEALT | |||
#!/bin/bash | |||
sleep 10 | |||
USERSCONECT=\$(who | awk '//{print \$1}' | sort -u) | |||
childloginon=0 | |||
for USERCT in \$USERSCONECT | |||
do | |||
if [ \$(groups \$USERCT | grep -v -c ctoff ) -eq 1 ] ;then | |||
childloginon=1 | |||
fi | |||
done | |||
if [ \$childloginon -eq 1 ];then | |||
if [ \$(cat $FILE_CONF | grep -c DNSMASQ=OFF ) -eq 1 ];then | |||
/usr/local/bin/CTparental.sh -on > /dev/null | |||
fi | |||
else | |||
if [ \$(cat $FILE_CONF | grep -c DNSMASQ=OFF ) -eq 0 ];then | |||
/usr/local/bin/CTparental.sh -off > /dev/null | |||
fi | |||
fi | |||
EOF | |||
cat << EOF > $XLOGONSCRIPTE | |||
#!/bin/bash | |||
USERSCONECT=\$(who | awk '//{print \$1}' | sort -u) | |||
childloginon=0 | |||
for USERCT in \$USERSCONECT | |||
do | |||
if [ \$(groups \$USERCT | grep -v -c ctoff ) -eq 1 ] ;then | |||
childloginon=1 | |||
fi | |||
done | |||
if [ \$childloginon -eq 1 ];then | |||
if [ \$(cat $FILE_CONF | grep -c DNSMASQ=OFF ) -eq 1 ];then | |||
sudo /usr/local/bin/CTparental.sh -on > /dev/null | |||
fi | |||
else | |||
if [ \$(cat $FILE_CONF | grep -c DNSMASQ=OFF ) -eq 0 ];then | |||
sudo /usr/local/bin/CTparental.sh -off > /dev/null | |||
fi | |||
fi | |||
EOF | |||
chown root:root $XLOGONSCRIPTEALT | |||
chmod 755 $XLOGONSCRIPTEALT | |||
chown root:root $XLOGONSCRIPTE | |||
chmod 655 $XLOGONSCRIPTE | |||
$SED "s?^GCTOFF.*?GCTOFF=ON?g" $FILE_CONF | |||
applistegctoff | |||
} | |||
desactivegourpectoff () { | |||
if [ $NOXSESSIOND -eq 1 ];then | |||
$SED "$(echo $XLOGONSCRIPTEALT | sed -e 's|\/|\\/|g' | sed -e 's|\.|\\.|g')/d" $STARTUPLIGHTDM | |||
echo "Vous allez maintenant choisir les \" | $SED "$(echo $XLOGONSCRIPTEALT | sed -e 's|\/|\\/|g' | sed -e 's|\.|\\.|g')/d" $STARTUPKDM | ||
for CATEGORIE in `cat $ | $SED "$(echo $XLOGONSCRIPTEALT | sed -e 's|\/|\\/|g' | sed -e 's|\.|\\.|g')/d" $STARTUPGDM | ||
fi | |||
rm -f $XLOGONSCRIPTEALT | |||
rm -f $XLOGONSCRIPTE | |||
groupdel ctoff | |||
$SED "s?^GCTOFF.*?GCTOFF=OFF?g" $FILE_CONF | |||
} | |||
uninstall () { | |||
desactivegourpectoff | |||
rm -f /etc/cron.d/CTparental* | |||
$DNSMASQrestart | |||
$LIGHTTPDstop | |||
rm -f /var/www/index.lighttpd.html | |||
rm -rf $tempDIR | |||
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 | |||
$SED "s/^#dns=dnsmasq/dns=dnsmasq/g" /etc/NetworkManager/NetworkManager.conf | |||
$NWMANAGERrestart | |||
sleep 5 | |||
fi | |||
rm -rf $DIR_CONF | |||
if [ $noinstalldep = "0" ]; then | |||
$CMDREMOVE $DEPENDANCES | |||
fi | |||
} | |||
choiblenabled () { | |||
echo -n > $CATEGORIES_ENABLED | |||
clear | |||
echo "Voulez-vous filtrer par Blacklist ou Whitelist :" | |||
echo -n " B/W :" | |||
while (true); do | |||
read choi | |||
case $choi in | |||
B | b ) | |||
echo "Vous allez maintenant choisir les \"Black listes\" à appliquer." | |||
for CATEGORIE in `cat $BL_CATEGORIES_AVAILABLE` # pour chaque catégorie | |||
do | do | ||
clear | clear | ||
Ligne 928 : | Ligne 1 113 : | ||
break | break | ||
;; | ;; | ||
esac | W | w ) | ||
done | echo "Vous allez maintenant choisir les \"White listes\" à appliquer." | ||
for CATEGORIE in `cat $WL_CATEGORIES_AVAILABLE` # pour chaque catégorie | |||
do | |||
clear | |||
echo "Voulez vous activer la categorie :" | |||
echo -n "$CATEGORIE O/N :" | |||
while (true); do | |||
read choi | |||
case $choi in | |||
O | o ) | |||
echo $CATEGORIE >> $CATEGORIES_ENABLED | |||
break | |||
;; | |||
N | n ) | |||
break | |||
;; | |||
esac | |||
done | |||
done | |||
break | |||
;; | |||
esac | |||
done | |||
} | } | ||
Ligne 966 : | Ligne 1 173 : | ||
echo "$MAlert $Halert * * ${DAYSCRON[$D]}" | echo "$MAlert $Halert * * ${DAYSCRON[$D]}" | ||
} | } | ||
updatetimelogin () { | |||
USERSCONECT=$(who | awk '//{print $1}' | sort -u) | |||
if [ $(cat $FILE_HCOMPT | grep -c $(date +%D)) -eq 1 ] ; then | |||
# on incrément le conteur de temps de connection. pour chaque utilisateur connecter | |||
for PCUSER in $USERSCONECT | |||
do | |||
if [ $(cat $FILE_HCONF | grep -c ^$PCUSER=user= ) -eq 1 ] ;then | |||
if [ $(cat $FILE_HCOMPT | grep -c ^$PCUSER= ) -eq 0 ] ;then | |||
echo "$PCUSER=1" >> $FILE_HCOMPT | |||
else | |||
count=$(($(cat $FILE_HCOMPT | grep ^$PCUSER= | cut -d"=" -f2) + 1 )) | |||
$SED "s?^$PCUSER=.*?$PCUSER=$count?g" $FILE_HCOMPT | |||
temprest=$(($(cat $FILE_HCONF | grep ^$PCUSER=user= | cut -d "=" -f3 ) - $count )) | |||
echo $temprest | |||
# si le compteur de l'usager depace la valeur max autoriser on verrouille le compte et on deconnect l'utilisateur. | |||
if [ $temprest -le 0 ];then | |||
/usr/bin/skill -KILL -u$PCUSER | |||
passwd -l $PCUSER | |||
else | |||
if [ $temprest -le 5 ];then | |||
HOMEPCUSER=$(getent passwd "$PCUSER" | cut -d ':' -f6) | |||
export HOME=$HOMEPCUSER && export DISPLAY=:0.0 && export XAUTHORITY=$HOMEPCUSER/.Xauthority && sudo -u $PCUSER /usr/bin/notify-send -u critical "Alerte CTparental" "Votre temps de connection restent est de $temprest minutes " | |||
fi | |||
fi | |||
fi | |||
else | |||
# on efface les ligne relative a cette utilisateur | |||
$SED "/^$PCUSER$/d" $FILE_HCOMPT | |||
fi | |||
activetimelogin () { | done | ||
else | |||
# on réactivent tous les comptes | |||
for PCUSER in `listeusers` | |||
do | |||
passwd -u $PCUSER | |||
done | |||
# on remait tous les compteurs a zero. | |||
echo "date=$(date +%D)" > $FILE_HCOMPT | |||
fi | |||
} | |||
activetimelogin () { | |||
TESTGESTIONNAIRE="" | TESTGESTIONNAIRE="" | ||
for FILE in `echo $GESTIONNAIREDESESSIONS` | for FILE in `echo $GESTIONNAIREDESESSIONS` | ||
Ligne 991 : | Ligne 1 242 : | ||
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 "PATH=$PATH" > /etc/cron.d/CTparental${DAYS[$NumDAY]} | ||
done | done | ||
for PCUSER in `listeusers` | for PCUSER in `listeusers` | ||
Ligne 1 009 : | Ligne 1 260 : | ||
N| n ) | N| n ) | ||
alltime="N" | alltime="N" | ||
echo "$PCUSER=user=" >> $FILE_HCONF | clear | ||
echo -e "$PCUSER est autorisé a se connecter X minutes par jours" | |||
echo -e -n "X (1 a 1440) = " | |||
while (true); do | |||
read choi | |||
if [ $choi -ge 1 ];then | |||
if [ $choi -le 1440 ];then | |||
break | |||
fi | |||
fi | |||
echo " X doit prendre un valeur entre 1 et 1440 " | |||
done | |||
echo "$PCUSER=user=$choi" >> $FILE_HCONF | |||
break | |||
;; | ;; | ||
esac | esac | ||
Ligne 1 048 : | Ligne 1 311 : | ||
for count in 1 2 3 4 5 | for count in 1 2 3 4 5 | ||
do | 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 $h2 $m2 $NumDAY) root export HOME=$HOMEPCUSER && 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 | done | ||
break | break | ||
Ligne 1 074 : | Ligne 1 337 : | ||
for count in 1 2 3 4 5 | for count in 1 2 3 4 5 | ||
do | 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 $h2 $m2 $NumDAY) root export HOME=$HOMEPCUSER && 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]} | echo "$(timecronalert $count $h4 $m4 $NumDAY) root export HOME=$HOMEPCUSER && 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 | done | ||
Ligne 1 110 : | Ligne 1 373 : | ||
done | done | ||
echo >> $FILE_HCONF | echo >> $FILE_HCONF | ||
echo "PATH=$PATH" > /etc/cron.d/CTparentalmaxtimelogin | |||
echo "*/1 * * * * root /usr/local/bin/CTparental.sh -uctl" >> /etc/cron.d/CTparentalmaxtimelogin | |||
$SED "s?^HOURSCONNECT.*?HOURSCONNECT=ON?g" $FILE_CONF | $SED "s?^HOURSCONNECT.*?HOURSCONNECT=ON?g" $FILE_CONF | ||
$CRONrestart | $CRONrestart | ||
Ligne 1 124 : | Ligne 1 389 : | ||
rm -f /etc/cron.d/CTparental${DAYS[$NumDAY]} | rm -f /etc/cron.d/CTparental${DAYS[$NumDAY]} | ||
done | done | ||
rm -f /etc/cron.d/CTparentalmaxtimelogin | |||
$SED "s?^HOURSCONNECT.*?HOURSCONNECT=OFF?g" $FILE_CONF | $SED "s?^HOURSCONNECT.*?HOURSCONNECT=OFF?g" $FILE_CONF | ||
for PCUSER in `listeusers` | |||
do | |||
passwd -u $PCUSER | |||
done | |||
# on remait tous les compteurs a zero. | |||
echo "date=$(date +%D)" > $FILE_HCOMPT | |||
echo > $FILE_HCONF | |||
$CRONrestart | $CRONrestart | ||
} | } | ||
Ligne 1 166 : | Ligne 1 438 : | ||
for NumDAY in 0 1 2 3 4 5 6 | for NumDAY in 0 1 2 3 4 5 6 | ||
do | do | ||
echo | echo "PATH=$PATH" > /etc/cron.d/CTparental${DAYS[$NumDAY]} | ||
done | done | ||
Ligne 1 200 : | Ligne 1 472 : | ||
for count in 1 2 3 4 5 | for count in 1 2 3 4 5 | ||
do | 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 $h2 $m2 $NumDAY) root export HOME=$HOMEPCUSER && 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]} | echo "$(timecronalert $count $h4 $m4 $NumDAY) root export HOME=$HOMEPCUSER && 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 | done | ||
Ligne 1 213 : | Ligne 1 485 : | ||
for count in 1 2 3 4 5 | for count in 1 2 3 4 5 | ||
do | 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 $h2 $m2 $NumDAY) root export HOME=$HOMEPCUSER && 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 | 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]} | ||
Ligne 1 229 : | Ligne 1 501 : | ||
fi | fi | ||
done | done | ||
echo "PATH=$PATH" > /etc/cron.d/CTparentalmaxtimelogin | |||
echo "*/1 * * * * root /usr/local/bin/CTparental.sh -uctl" > /etc/cron.d/CTparentalmaxtimelogin | |||
$SED "s?^HOURSCONNECT.*?HOURSCONNECT=ON?g" $FILE_CONF | $SED "s?^HOURSCONNECT.*?HOURSCONNECT=ON?g" $FILE_CONF | ||
$CRONrestart | $CRONrestart | ||
Ligne 1 272 : | Ligne 1 545 : | ||
-nomanuel => utiliser uniquement pour le scripte de postinst et prerm | -nomanuel => utiliser uniquement pour le scripte de postinst et prerm | ||
du deb. | du deb. | ||
-gcton => créer un group de privilégier ne subisent pas le filtrage. | |||
mais ralenti les ouvertures de sessions, quant on passe d'un user restraint a un qui ne l'est pas | |||
est inversement. | |||
exemple:CTparental.sh -gctulist | |||
editer $FILE_GCTOFFCONF et y commanter tous les utilisateurs que l'on veut filtrer. | |||
CTparental.sh -gctalist | |||
(note temps qu'un utilisateur non privilégier restera connecter le filtrage sera actif!!) | |||
-gctoff => suprime le group de privilégier . | |||
tous les utilisateurs du system subisse le filtrages!! | |||
-gctulist => Mes a jour le fichier de conf du group , $FILE_GCTOFFCONF | |||
en fonction des utilisateur ajouter ou suprimer du pc. | |||
-gctalist => Ajoute/Suprime les utilisateurs dans le group ctoff en fonction du fichier de conf. | |||
" | " | ||
case $arg1 in | case $arg1 in | ||
Ligne 1 357 : | Ligne 1 643 : | ||
listeusers | listeusers | ||
;; | ;; | ||
-gcton ) | |||
activegourpectoff | |||
;; | |||
-gctoff ) | |||
desactivegourpectoff | |||
;; | |||
-gctulist ) | |||
updatelistgctoff | |||
;; | |||
-gctalist ) | |||
applistegctoff | |||
;; | |||
-uctl ) | |||
# apelet toute les minute par cron pour activer desactiver les usagers ayant des restrictions de temps journalier de connection. | |||
updatetimelogin | |||
;; | |||
*) | *) | ||
Ligne 1 364 : | Ligne 1 666 : | ||
;; | ;; | ||
esac | esac | ||
</code> | </code> | ||
Ligne 1 373 : | Ligne 1 674 : | ||
<HEAD> | <HEAD> | ||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | ||
<TITLE> | <TITLE>CTparental DNS filtering</TITLE> | ||
<link rel="stylesheet" href="/CTadmin/css/style.css" type="text/css"> | <link rel="stylesheet" href="/CTadmin/css/style.css" type="text/css"> | ||
</HEAD> | </HEAD> | ||
Ligne 1 431 : | Ligne 1 732 : | ||
$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_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_wait="Une fois validées, 30 secondes sont nécessaires pour traiter vos modifications"; | $l_wait="Une fois validées, 30 secondes sont nécessaires pour traiter vos modifications"; | ||
$l_title_gctoff="Groupe privilégié"; | |||
$l_gctoff_explain="Cocher des utilisateurs ne devant pas subir de filtrage"; | |||
$l_gctoff_username="Nom d'utilisateur"; | |||
$l_gctoff_username_comment="Commentaires"; | |||
$l_switch_gctoff_on="Activer le groupe de privilégiés."; | |||
$l_switch_gctoff_off="Désactiver le groupe de privilégiés."; | |||
$l_gctoff_on = "Le Groupe privilégié est actuellement activés"; | |||
$l_gctoff_off = "Le Groupe privilégié est actuellement désactivés"; | |||
} | } | ||
else { | else { | ||
Ligne 1 476 : | Ligne 1 786 : | ||
$l_record="Save changes"; | $l_record="Save changes"; | ||
$l_wait="Once validated, 30 seconds is necessary to compute your modifications"; | $l_wait="Once validated, 30 seconds is necessary to compute your modifications"; | ||
$l_title_gctoff="Groupe privilégié"; | |||
$l_gctoff_explain="Cocher des utilisateurs ne devant pas subir de filtrage"; | |||
$l_gctoff_username="Username"; | |||
$l_gctoff_username_comment="Comments"; | |||
$l_switch_gctoff_on="Activer le groupe de privilégiés."; | |||
$l_switch_gctoff_off="Désactiver le groupe de privilégiés."; | |||
$l_gctoff_on = "Le Groupe privilégié est actuellement activés"; | |||
$l_gctoff_off = "Le Groupe privilégié est actuellement désactivés"; | |||
} | } | ||
$weeknum = array( 0,1,2,3,4,5,6); | $weeknum = array( 0,1,2,3,4,5,6); | ||
Ligne 1 481 : | Ligne 1 800 : | ||
$bl_categories_enabled="/usr/local/etc/CTparental/categories-enabled"; | $bl_categories_enabled="/usr/local/etc/CTparental/categories-enabled"; | ||
$conf_file="/usr/local/etc/CTparental/CTparental.conf"; | $conf_file="/usr/local/etc/CTparental/CTparental.conf"; | ||
$conf_ctoff_file="/usr/local/etc/CTparental/GCToff.conf"; | |||
$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"; | ||
Ligne 1 490 : | Ligne 1 810 : | ||
switch ($choix) | switch ($choix) | ||
{ | { | ||
case 'gct_Off' : | |||
exec ("sudo -u root /usr/local/bin/CTparental.sh -gctoff"); | |||
break; | |||
case 'gct_On' : | |||
exec ("sudo -u root /usr/local/bin/CTparental.sh -gcton"); | |||
break; | |||
case 'LogOFF' : | case 'LogOFF' : | ||
header('HTTP/1.0 401 Unauthorized'); | header('HTTP/1.0 401 Unauthorized'); | ||
Ligne 1 566 : | Ligne 1 892 : | ||
else | else | ||
{ | { | ||
fwrite($pointeur,"$selectuser=user="."\n"); | if (isset($_POST["tmax"])){fwrite($pointeur,"$selectuser=user=".$_POST["tmax"]."\n"); } | ||
else {fwrite($pointeur,"$selectuser=user=1440"."\n"); } | |||
foreach ($weeknum as $numday) | foreach ($weeknum as $numday) | ||
{ | { | ||
Ligne 1 639 : | Ligne 1 966 : | ||
exec ("sudo -u root /usr/local/bin/CTparental.sh -trf"); | exec ("sudo -u root /usr/local/bin/CTparental.sh -trf"); | ||
break; | break; | ||
case 'change_user' : | |||
$tab=file($conf_ctoff_file); | |||
if ($tab) | |||
{ | |||
$pointeur=fopen($conf_ctoff_file,"w+"); | |||
foreach ($tab as $ligne) | |||
{ | |||
$CONF_CTOFF1 = str_replace('#','',$ligne); | |||
$actif = False ; | |||
foreach ($_POST as $key => $value) | |||
{ | |||
if (strstr($key,'chk-')) | |||
{ | |||
$CONF_CTOFF2 = str_replace('chk-','',$key); | |||
if ( trim($CONF_CTOFF1) == trim($CONF_CTOFF2) ) | |||
{ | |||
$actif = True; | |||
break; | |||
} | |||
} | |||
} | |||
if (! $actif) { $line="#$CONF_CTOFF1";} | |||
else { $line="$CONF_CTOFF1";} | |||
fwrite($pointeur,$line); | |||
} | |||
fclose($pointeur); | |||
} | |||
exec ("sudo -u root /usr/local/bin/CTparental.sh -gctalist"); | |||
break; | |||
} | } | ||
Ligne 1 666 : | Ligne 2 025 : | ||
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]);} | ||
if ($field[0] == "GCTOFF") {$GCTOFF=trim($field[1]);} | |||
} | } | ||
} | } | ||
} | } | ||
else { echo "$l_error_open_file $conf_file";} | else { echo "$l_error_open_file $conf_file";} | ||
include 'dns.php'; | |||
include 'hours.php'; | |||
include 'gctoff.php'; | |||
//echo "</td></tr>"; | |||
?> | |||
</BODY> | |||
</HTML> | |||
</code> | |||
'''dns.php''' | |||
<code php> | |||
<?php | |||
if ($DNSMASQ <> "OFF") | if ($DNSMASQ <> "OFF") | ||
{ | { | ||
Ligne 1 677 : | Ligne 2 053 : | ||
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\">"; | ||
} | echo "</FORM>"; | ||
if (isset($_GET['filtragemode'])){ $filtragemode=$_GET['filtragemode']; } else {$filtragemode=$DNSMASQ;} | |||
if ($filtragemode == 'WHITE') | |||
{ | { | ||
$bl_categories="/usr/local/etc/CTparental/wl-categories-available"; | |||
} | } | ||
echo "</ | else { $bl_categories="/usr/local/etc/CTparental/bl-categories-available";} | ||
$filtragemode = urlencode($filtragemode); | |||
echo "<table border=0 width=400 cellpadding=0 cellspacing=2>"; | |||
echo "<tr valign=top>"; | |||
echo "<td align=center"; if ( $filtragemode == "BLACK" ) { echo " bgcolor=\"#FFCC66\"";} echo ">"; | |||
echo "<a href=\"$_SERVER[PHP_SELF]?filtragemode=BLACK\" title=\"\"><font color=\"black\"><b>$l_fmenu_black</b></font></a></td>"; | |||
echo "<td align=center"; if ( $filtragemode == "WHITE" ) { echo " bgcolor=\"#FFCC66\"";} echo ">"; | |||
echo "<a href=\"$_SERVER[PHP_SELF]?filtragemode=WHITE\" title=\"\"><font color=\"black\"><b>$l_fmenu_white</b></font></a></td>"; | |||
echo "</tr>"; | |||
echo" </table>"; | |||
echo "</td></tr>"; | |||
if ( $ | function echo_file ($filename) | ||
{ | |||
} | if (file_exists($filename)) | ||
echo " | { | ||
echo "<TABLE width='100%' border= | if (filesize($filename) != 0) | ||
echo "< | { | ||
echo "<tr | $pointeur=fopen($filename,"r"); | ||
echo "</ | $tampon = fread($pointeur, filesize($filename)); | ||
echo "< | fclose($pointeur); | ||
echo "< | echo $tampon; | ||
} | |||
} | |||
echo " | else | ||
{ | |||
echo "<input type=hidden name='choix' value= | echo "$l_error_openfile $filename"; | ||
echo "<input type=submit value= | } | ||
} | |||
echo "<TABLE width='100%' border=1 cellspacing=0 cellpadding=1>"; | |||
echo "<CENTER><H3>$l_main_bl</H3></CENTER>"; | |||
echo "<tr><td valign='middle' align='left' colspan=10>"; | |||
echo "<FORM action='$_SERVER[PHP_SELF]' method=POST>"; | |||
echo "<center>$l_bl_version $LASTUPDATE"; | |||
echo "</center><BR>"; | |||
echo "<input type='hidden' name='choix' value='Download_bl'>"; | |||
echo "<input type='submit' value='$l_download_bl'>"; | |||
echo " ($l_warning)"; | |||
echo "</FORM>"; | |||
echo "<FORM action='$_SERVER[PHP_SELF]' method=POST>"; | |||
echo "<input type='hidden' name='choix' value='INIT_BL'>"; | |||
echo "<input type='submit' value='$l_switch_Init_bl'>"; | |||
echo "</FORM>"; | |||
if ($AUTOUPDATE == "ON") | |||
{ | |||
echo "<CENTER><H3>$l_auto_update_on</H3></CENTER>"; | |||
echo "<FORM action='$_SERVER[PHP_SELF]' method=POST>"; | |||
echo "<input type=hidden name='choix' value=\"AUP_Off\">"; | |||
echo "<input type=submit value=\"$l_switch_auto_update_off\">"; | |||
} | } | ||
echo "</FORM>"; | else | ||
{ | |||
echo "<CENTER><H3>$l_auto_update_off</H3></CENTER>"; | |||
echo "<FORM action='$_SERVER[PHP_SELF]' method=POST>"; | |||
echo "<input type=hidden name='choix' value=\"AUP_On\">"; | |||
echo "<input type=submit value=\"$l_switch_auto_update_on\">"; | |||
} | |||
echo "</FORM>"; | |||
echo "</td></tr>"; | |||
echo "<tr><td valign=\"middle\" align=\"left\" colspan=10>"; | |||
echo "<FORM action='$_SERVER[PHP_SELF]' method=POST>"; | |||
echo "<input type='hidden' name='choix' value='MAJ_cat'>"; | |||
if ($filtragemode == "BLACK"){echo "<center>$l_bl_categories_bl</center></td></tr>";} | |||
else {echo "<center>$l_bl_categories_wl</center></td></tr>";} | |||
//on lit et on interprète le fichier de catégories | |||
$cols=1; | |||
if (file_exists($bl_categories)) | |||
{ | |||
$pointeur=fopen($bl_categories,"r"); | |||
while (!feof ($pointeur)) | |||
if ($ | |||
{ | { | ||
$pointeur= | $ligne=fgets($pointeur, 4096); | ||
if ($ligne) | |||
{ | |||
if ($cols == 1) { echo "<tr>";} | |||
$categorie=trim(basename($ligne)); | |||
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'"; | |||
// la catégorie n'existe pas dans le fichier de catégorie activé -> categorie non selectionnée | |||
$str = file_get_contents($bl_categories_enabled); | |||
if (strpos($str, $categorie)===false) { echo ">";} | |||
else { echo "checked>"; } | |||
echo "</td>"; | |||
$cols++; | |||
if ($cols > 10) { | |||
echo "</tr>"; | |||
$cols=1; } | |||
} | |||
} | } | ||
fclose($pointeur); | |||
} | } | ||
else | else { | ||
echo "$l_error_open_file $bl_categories"; | |||
echo "$ | |||
} | } | ||
echo "</td></tr>"; | |||
echo "<tr><td valign='middle' align='left' colspan=10></td></tr>"; | |||
echo "<tr><td colspan=5 align=center>"; | |||
if ($filtragemode == "BLACK"){echo "<H3>$l_rehabilitated_dns</H3>$l_rehabilitated_dns_explain_bl<BR>$l_one_dns<BR>";} | |||
else {echo "<H3>$l_rehabilitated_dns</H3>$l_rehabilitated_dns_explain_wl<BR>$l_one_dns<BR>";} | |||
echo "<textarea name='OSSI_wl_domains' rows=5 cols=40>"; | |||
echo_file ($wl_domains); | |||
echo "</textarea></td>"; | |||
if ( $filtragemode == "BLACK" ) { | |||
echo "<td colspan=5 align=center>"; | |||
echo "<H3>$l_forbidden_dns</H3>$l_forbidden_dns_explain<BR>"; | |||
echo "<textarea name='OSSI_bl_domains' rows=5 cols=40>"; | |||
echo_file ($bl_domains); | |||
echo "</textarea></td>"; | |||
} | } | ||
echo "</tr><tr><td colspan=10>"; | |||
echo "<input type='submit' value='$l_record'>"; | |||
echo "</form> ($l_wait)"; | |||
echo "</td></tr>"; | |||
echo "</TABLE>"; | |||
echo "</TABLE>"; | |||
} | } | ||
else | else | ||
{ | { | ||
echo "<CENTER><H3>$ | 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=\" | echo "<input type=hidden name='choix' value=\"BL_On\">"; | ||
echo "<input type=submit value=\"$ | echo "<input type=submit value=\"$l_switch_filtering_on\">"; | ||
echo "</FORM>"; | |||
echo "</td></tr>"; | |||
} | } | ||
?> | ?> | ||
</code> | </code> | ||
'''hours.php''' | '''hours.php''' | ||
Ligne 1 857 : | Ligne 2 205 : | ||
<?php | <?php | ||
echo "<TABLE width='100%' border=0 cellspacing=0 cellpadding=0>"; | |||
echo "<tr><th>$l_hours1</th></tr>"; | |||
echo "<tr bgcolor='#FFCC66'><td><img src='/images/pix.gif' width=1 height=2></td></tr>"; | |||
echo "</TABLE>"; | |||
echo "<TABLE width='100%' border=1 cellspacing=0 cellpadding=0>"; | |||
echo "<tr><td valign='middle' align='left'>"; | |||
if ($HOURSCONNECT == "ON") | |||
{ | |||
echo "<CENTER><H3>$l_hours_on</H3></CENTER>"; | |||
echo "<FORM action='$_SERVER[PHP_SELF]' method=POST>"; | |||
echo "<input type=hidden name='choix' value=\"H_Off\">"; | |||
echo "<input type=submit value=\"$l_switch_hours_off\">"; | |||
echo "</FORM>"; | |||
# Choice of language | |||
$Language = 'en'; | |||
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){ | |||
$Langue = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']); | |||
$Language = strtolower(substr(chop($Langue[0]),0,2)); } | |||
if($Language == 'fr'){ | |||
$l_selectuser="l'utilisateur selectionné est : "; | |||
$l_userisnotselect="Veuillez selectionner un utilisateur."; | |||
$l_isadmin = "7j/7 24h/24"; | |||
$l_valide = "Enregistrer"; | |||
$to = " à " ; | |||
$and = " et " ; | |||
$l_select = "Sélectionner"; | |||
$l_info1 = "08h00 à 24h00 ou 08h00 à 12h00 et 14h00 à 24h00"; | |||
$week = array( "lundi","mardi","mercredi","jeudi","vendredi","samedi","dimanche"); | |||
$tmaxinfo= "Minutes max /24 heurs"; | |||
} | |||
else { | |||
$l_userisnotselect="Veuillez sélectionner un utilisateur."; | |||
$l_selectuser="l'utilisateur sélectionné est : "; | |||
$l_isadmin = "7j/7 24h/24"; | |||
$l_valide = "Enregistrer"; | |||
$l_select = "Select"; | |||
$to = " to " ; | |||
$and = " and " ; | |||
$l_info1 = "08h00 à 24h00 ou 08h00 à 12h00 et 14h00 à 24h00"; | |||
$week = array( "lundi","mardi","mercredi","jeudi","vendredi","samedi","dimanche"); | |||
$tmaxinfo= "Minutes max /24 heurs"; | |||
} | |||
if (isset($_POST['selectuser'])){ $selectuser=$_POST['selectuser']; } | |||
echo "<TABLE width=' | |||
echo "< | ### on lit est on interprète le fichier CTparental.conf | ||
echo "<TABLE width='100%' border=0 cellspacing=0 cellpadding=0>"; | |||
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 "<select name=\"selectuser\">"; | |||
if ($selectuser){echo "<option value=\"$selectuser\">$selectuser\n"; } | |||
{ | else {echo "<option value=\"\">\n"; } | ||
foreach ($USERSPC as $USERSELECT){echo "<option value=\"$USERSELECT\">$USERSELECT\n";} | |||
echo " </select>"; | |||
echo "<input type=\"submit\" value=\"$l_select\">"; | |||
echo "</FORM>"; | |||
if (isset($selectuser)) { | |||
echo "</TABLE>"; | |||
echo "<TABLE width='600' border=0 cellspacing=0 cellpadding=0>"; | |||
echo "<FORM action='$_SERVER[PHP_SELF]' method=POST>"; | |||
echo "<CENTER><H3>$l_selectuser $selectuser</H3></CENTER>"; | |||
if (is_file ($hconf_file)) | |||
{ | |||
$tab=file($hconf_file); | |||
if ($tab) | |||
{ | |||
foreach ($tab as $line) | |||
{ | |||
$field=explode("=", $line); | |||
if ( $field[0] == $selectuser ){ | |||
$field2=explode(":", $field[2]); | |||
$numday=$field[1]; | |||
$isconfigured=1; | |||
if ( $numday == "admin") { echo "<tr><td>$l_isadmin : <input type='checkbox' name='isadmin' checked></td></tr>";} | |||
elseif ( $numday == "user") {echo "<tr><td>$l_isadmin : <input type='checkbox' name='isadmin' ></td></tr>"; | |||
if ( intval ($field[2]) == 0 ) { $field[2]="1440"; } | |||
echo"<tr><td>$tmaxinfo<td><INPUT type=\"text\" size=4 maxlength=4 value=\"$field[2]\" name=\"tmax\">/1440<td</tr>"; | |||
} | |||
else { | |||
echo"<tr><td>$week[$numday]:</td><td><INPUT type=\"text\" size=5 maxlength=5 value=\"$field2[0]\" name=\"h1$numday\"></td>"; | |||
echo" <td>$to <INPUT type=\"text\" size=5 maxlength=5 value=\"$field2[1]\" name=\"h2$numday\"></td>"; | |||
echo" <td>$and <INPUT type=\"text\" size=5 maxlength=5 value=\"$field2[2]\" name=\"h3$numday\"></td>"; | |||
echo" <td>$to <INPUT type=\"text\" size=5 maxlength=5 value=\"$field2[3]\" name=\"h4$numday\"></td></tr>"; | |||
} | |||
} | |||
} | |||
} | |||
} | |||
else { echo "$l_error_open_file $hconf_file";} | |||
if (isset($isconfigured)==0){ | |||
echo "<tr><td>$l_isadmin : <input type='checkbox' name='isadmin' checked=\"checked\"></td></tr>"; | |||
} | |||
echo "</TABLE>"; | |||
echo "<input type=hidden name='selectuser' value=\"$selectuser\">"; | |||
echo "<input type=hidden name='choix' value=\"MAJ_H\">"; | |||
echo "<input type=\"submit\" value=\"$l_valide\">"; | |||
echo "</FORM>"; | |||
} | |||
else { echo "<CENTER><H3>$l_userisnotselect</H3></CENTER>";} | |||
} | |||
else | |||
{ | |||
echo "<CENTER><H3>$l_hours_off</H3></CENTER>"; | |||
echo "<FORM action='$_SERVER[PHP_SELF]' method=POST>"; | |||
echo "<input type=hidden name='choix' value=\"H_On\">"; | |||
echo "<input type=submit value=\"$l_switch_hours_on\">"; | |||
echo "</FORM>"; | |||
} | |||
?> | |||
</code> | |||
'''gctoff.php''' | |||
<code php> | |||
<?php | |||
echo "<TABLE width='100%' border=0 cellspacing=0 cellpadding=0>"; | |||
echo "<tr><th>$l_title_gctoff</th></tr>"; | |||
echo "<tr bgcolor='#FFCC66'><td><img src='/images/pix.gif' width='1' height='2'></td></tr>"; | |||
echo "</table>"; | |||
echo "<table width='100%' border=1 cellspacing=0 cellpadding=1>"; | |||
if ($GCTOFF == "ON") | |||
{ | |||
echo "<CENTER><H3>$l_gctoff_on</H3></CENTER>"; | |||
echo "<FORM action='$_SERVER[PHP_SELF]' method=POST>"; | |||
echo "<input type=hidden name='choix' value=\"gct_Off\">"; | |||
echo "<input type=submit value=\"$l_switch_gctoff_off\">"; | |||
echo "</FORM>"; | |||
echo "<tr><td colspan=2 align='center'>"; | |||
echo "$l_gctoff_explain</td></tr>"; | |||
echo "<tr><td align='center' valign='middle'>"; | |||
echo "<FORM action='$_SERVER[PHP_SELF]' method='POST'>"; | |||
echo "<table cellspacing=2 cellpadding=2 border=1>"; | |||
echo "<tr><th>$l_gctoff_username<th>$l_blocked</tr>"; | |||
// Read the "CTOFF.conf" file | |||
exec ("sudo /usr/local/bin/CTparental.sh -gctulist"); | |||
$tab=file($conf_ctoff_file); | |||
if ($tab) # the file isn't empty | |||
{ | |||
foreach ($tab as $line) | |||
{ | |||
if (trim($line) != '') # the line isn't empty | |||
{ | |||
$user_lignes=explode(" ", $line); | |||
$userx=trim($user_lignes[0],"#"); | |||
echo "<tr><td>$userx"; | |||
echo "<td><input type='checkbox' name='chk-$userx'"; | |||
if (preg_match('/^#/',$line, $r)) { | |||
echo ">";} | |||
else { | |||
echo "checked>";} | |||
echo "</tr>"; | |||
} | |||
} | |||
} | |||
echo "</table>"; | |||
echo "<input type='hidden' name='choix' value='change_user'>"; | |||
echo "<input type='submit' value='$l_record'>"; | |||
echo "</form>"; | |||
} | |||
else | |||
{ | |||
echo "<CENTER><H3> $l_gctoff_off</H3></CENTER>"; | |||
echo "<FORM action='$_SERVER[PHP_SELF]' method=POST>"; | |||
echo "<input type=hidden name='choix' value=\"gct_On\">"; | |||
echo "<input type=submit value=\"$l_switch_gctoff_on\">"; | |||
echo "</FORM>"; | |||
} | } | ||
</code> | </code> |
modifications