199
modifications
mAucun résumé des modifications |
(up version 3.10) |
||
Ligne 2 : | Ligne 2 : | ||
<code bash> | <code bash> | ||
#!/bin/bash | #!/bin/bash | ||
# CTparental.sh | # CTparental.sh | ||
# | # | ||
Ligne 11 : | Ligne 10 : | ||
# This script is distributed under the Gnu General Public License (GPL) | # This script is distributed under the Gnu General Public License (GPL) | ||
if [ ! $UID -eq 0 ]; then | #if [ ! $UID -eq 0 ]; then | ||
# echo "Il vous faut les droit root pour lancer ce scripte" | |||
# exit 1 | |||
fi | #fi | ||
args=${1} | args=${1} | ||
SED="/bin/sed -i" | SED="/bin/sed -i" | ||
DIR_CONF="/usr/local/etc/CTparental" | DIR_CONF="/usr/local/etc/CTparental" | ||
FILE_CONF="$DIR_CONF/CTparental.conf" | |||
FILE_HCONF="$DIR_CONF/CThours.conf"; | |||
if [ ! -f $FILE_CONF ] ; then | |||
mkdir -p $DIR_CONF | |||
cat << EOF > $FILE_CONF | |||
LASTUPDATE=0 | |||
DNSMASQ=BLACK | |||
AUTOUPDATE=OFF | |||
HOURSCONNECT=OFF | |||
EOF | |||
fi | |||
tempDIR="/tmp/alcasar" | tempDIR="/tmp/alcasar" | ||
RougeD="\033[1;31m" | RougeD="\033[1;31m" | ||
Ligne 44 : | Ligne 56 : | ||
RESOLVCONFORDER="$RESOLVCONFMAIN/interface-order" | RESOLVCONFORDER="$RESOLVCONFMAIN/interface-order" | ||
DIRHTML="/var/www/CTparental" | DIRHTML="/var/www/CTparental" | ||
DIRadminHTML="/var/www/CTadmin" | |||
namservicednsmaq="dnsmasq" | namservicednsmaq="dnsmasq" | ||
namservicehttpd="lighttpd" | namservicehttpd="lighttpd" | ||
namservicecrond="cron" | namservicecrond="cron" | ||
PASSWORDFILEHTTPD="/etc/lighttpd/lighttpd-htdigest.user" | |||
REALMADMINHTTPD="interface admin" | |||
CMDINSTALL="" | CMDINSTALL="" | ||
yum help 2&> /dev/null | yum help 2&> /dev/null | ||
Ligne 53 : | Ligne 68 : | ||
CMDINSTALL="yum install " | CMDINSTALL="yum install " | ||
CMDREMOVE="yum remove " | CMDREMOVE="yum remove " | ||
yum info openresolv 2&> /dev/null | |||
if [ $? -eq 0 ] ; then | |||
paquetresolv="openresolv" | |||
else | |||
paquetresolv="resolvconf" | |||
fi | |||
fi | fi | ||
urpmi --help 2&> /dev/null | urpmi --help 2&> /dev/null | ||
Ligne 60 : | Ligne 81 : | ||
CMDREMOVE="urpme --auto " | CMDREMOVE="urpme --auto " | ||
namservicecrond="crond" | namservicecrond="crond" | ||
paquetresolv="openresolv" | |||
fi | fi | ||
apt-get -h 2&> /dev/null | apt-get -h 2&> /dev/null | ||
Ligne 66 : | Ligne 88 : | ||
CMDINSTALL="apt-get -y --force-yes install " | CMDINSTALL="apt-get -y --force-yes install " | ||
CMDREMOVE="apt-get -y --force-yes remove --purge " | CMDREMOVE="apt-get -y --force-yes remove --purge " | ||
paquetresolv="resolvconf" # pour compatibiliter debian 6 | |||
fi | fi | ||
if [ $args="-i" ] ; then | if [ $args="-i" ] ; then | ||
Ligne 79 : | Ligne 102 : | ||
exit 1 | exit 1 | ||
fi | fi | ||
Ligne 102 : | Ligne 126 : | ||
DNS_FILTER_OSSI="$DIR_CONF/blackliste-local" | DNS_FILTER_OSSI="$DIR_CONF/blackliste-local" | ||
DREAB="$DIR_CONF/domaine-rehabiliter" | DREAB="$DIR_CONF/domaine-rehabiliter" | ||
THISDAYS=$(expr $(date +%Y) \* 365 + $(date +%j)) | THISDAYS=$(expr $(date +%Y) \* 365 + $(date +%j)) | ||
MAXDAYSFORUPDATE="7" # update tous les 7 jours | MAXDAYSFORUPDATE="7" # update tous les 7 jours | ||
Ligne 130 : | Ligne 153 : | ||
} | |||
addadminhttpd() { | |||
if [ ! -f $PASSWORDFILEHTTPD ] ; then | |||
echo -n > $PASSWORDFILEHTTPD | |||
fi | |||
chown root:$USERHTTPD $PASSWORDFILEHTTPD | |||
chmod 640 $PASSWORDFILEHTTPD | |||
USERADMINHTTPD=${1} | |||
pass=${2} | |||
hash=`echo -n "$USERADMINHTTPD:$REALMADMINHTTPD:$pass" | md5sum | cut -b -32` | |||
ligne=$(echo "$USERADMINHTTPD:$REALMADMINHTTPD:$hash") | |||
$SED "/^$USERADMINHTTPD:$REALMADMINHTTPD.*/d" $PASSWORDFILEHTTPD | |||
echo $ligne >> $PASSWORDFILEHTTPD | |||
} | } | ||
download() { | download() { | ||
rm -rf $tempDIR | |||
mkdir $tempDIR | |||
wget -P $tempDIR http://$BL_SERVER/blacklists/download/blacklists.tar.gz 2>&1 | cat | wget -P $tempDIR http://$BL_SERVER/blacklists/download/blacklists.tar.gz 2>&1 | cat | ||
if [ ! $? -eq 0 ]; then | if [ ! $? -eq 0 ]; then | ||
Ligne 148 : | Ligne 187 : | ||
} | } | ||
autoupdate() { | autoupdate() { | ||
LASTUPDATEDAY=`grep LASTUPDATE= $FILE_CONF | cut -d"=" -f2` | |||
LASTUPDATEDAY=${LASTUPDATEDAY:=0} | |||
DIFFDAY=$(expr $THISDAYS - $LASTUPDATEDAY) | DIFFDAY=$(expr $THISDAYS - $LASTUPDATEDAY) | ||
if [ $DIFFDAY -ge $MAXDAYSFORUPDATE ] ; then | if [ $DIFFDAY -ge $MAXDAYSFORUPDATE ] ; then | ||
Ligne 155 : | Ligne 195 : | ||
catChoice | catChoice | ||
dnsmasqon | dnsmasqon | ||
$SED "s?^LASTUPDATE.*?LASTUPDATE=$THISDAYS=`date +%d-%m-%Y\ %T`?g" $FILE_CONF | |||
exit 0 | exit 0 | ||
fi | fi | ||
} | } | ||
autoupdateon() { | autoupdateon() { | ||
$SED "s?^AUTOUPDATE.*?AUTOUPDATE=ON?g" $FILE_CONF | |||
echo "*/10 * * * * root $CHEMINCTPARENTLE -aup" > /etc/cron.d/CTparental-autoupdate | echo "*/10 * * * * root $CHEMINCTPARENTLE -aup" > /etc/cron.d/CTparental-autoupdate | ||
$CMDSERVICE$namservicecrond restart | $CMDSERVICE$namservicecrond restart | ||
Ligne 167 : | Ligne 206 : | ||
autoupdateoff() { | autoupdateoff() { | ||
$SED "s?^AUTOUPDATE.*?AUTOUPDATE=OFF?g" $FILE_CONF | |||
rm -f /etc/cron.d/CTparental-autoupdate | rm -f /etc/cron.d/CTparental-autoupdate | ||
$CMDSERVICE$namservicecrond restart | $CMDSERVICE$namservicecrond restart | ||
Ligne 278 : | Ligne 318 : | ||
done | done | ||
echo -n "." | echo -n "." | ||
cat $DREAB | sed -e "s?.*?server=/&/#?g" > $DIR_DNS_WHITELIST_ENABLED/whiteliste.ossi.conf | cat $DREAB | sed -e "s? ??g" | sed -e "s?.*?server=/&/#?g" > $DIR_DNS_WHITELIST_ENABLED/whiteliste.ossi.conf | ||
echo | echo | ||
} | } | ||
Ligne 286 : | Ligne 326 : | ||
is_blacklist=`grep $categorie1 $BL_CATEGORIES_AVAILABLE |wc -l` | is_blacklist=`grep $categorie1 $BL_CATEGORIES_AVAILABLE |wc -l` | ||
if [ $is_blacklist -ge "1" ] ; then | if [ $is_blacklist -ge "1" ] ; then | ||
$SED "s?^DNSMASQ.*?DNSMASQ=BLACK?g" $FILE_CONF | |||
cat << EOF > $DNSMASQCONF | cat << EOF > $DNSMASQCONF | ||
# Configuration file for "dnsmasq with blackhole" | # Configuration file for "dnsmasq with blackhole" | ||
Ligne 307 : | Ligne 348 : | ||
} | } | ||
dnsmasqoff () { | dnsmasqoff () { | ||
$SED "s?^DNSMASQ.*?DNSMASQ=OFF?g" $FILE_CONF | |||
cat << EOF > $DNSMASQCONF | cat << EOF > $DNSMASQCONF | ||
# Configuration file for "dnsmasq with blackhole" | # Configuration file for "dnsmasq with blackhole" | ||
Ligne 326 : | Ligne 368 : | ||
} | } | ||
dnsmasqwhitelistonly () { | dnsmasqwhitelistonly () { | ||
$SED "s?^DNSMASQ.*?DNSMASQ=WHITE?g" $FILE_CONF | |||
cat << EOF > $DNSMASQCONF | cat << EOF > $DNSMASQCONF | ||
# Configuration file for "dnsmasq with blackhole" | # Configuration file for "dnsmasq with blackhole" | ||
Ligne 434 : | Ligne 477 : | ||
USERHTTPD=$(cat /etc/passwd | grep /var/www | cut -d":" -f1) | USERHTTPD=$(cat /etc/passwd | grep /var/www | cut -d":" -f1) | ||
GROUPHTTPD=$(cat /etc/group | grep $USERHTTPD | cut -d":" -f1) | GROUPHTTPD=$(cat /etc/group | grep $USERHTTPD | cut -d":" -f1) | ||
cat << EOF > $MAINCONFHTTPD | cat << EOF > $MAINCONFHTTPD | ||
server.modules = ( | server.modules = ( | ||
Ligne 439 : | Ligne 483 : | ||
"mod_alias", | "mod_alias", | ||
"mod_redirect", | "mod_redirect", | ||
"mod_auth", #pour insteface admin | |||
"mod_fastcgi", #pour insteface admin (activation du php) | |||
# "mod_rewrite", | # "mod_rewrite", | ||
) | ) | ||
auth.debug = 0 | |||
auth.backend = "htdigest" | |||
auth.backend.htdigest.userfile = "$PASSWORDFILEHTTPD" | |||
server.document-root = "/var/www" | server.document-root = "/var/www" | ||
server.upload-dirs = ( "/var/cache/lighttpd/uploads" ) | server.upload-dirs = ( "/var/cache/lighttpd/uploads" ) | ||
Ligne 453 : | Ligne 503 : | ||
index-file.names = ( "index.php", "index.html" ) | index-file.names = ( "index.php", "index.html" ) | ||
url.access-deny = ( "~", ".inc" ) | url.access-deny = ( "~", ".inc" ) | ||
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" ) | static-file.exclude-extensions = (".php", ".pl", ".fcgi" ) | ||
compress.cache-dir = "/var/cache/lighttpd/compress/" | compress.cache-dir = "/var/cache/lighttpd/compress/" | ||
Ligne 516 : | Ligne 566 : | ||
mkdir -p $DIRCONFENABLEDHTTPD | mkdir -p $DIRCONFENABLEDHTTPD | ||
mkdir -p $DIRadminHTML | |||
cp -rf CTadmin/* $DIRadminHTML/ | |||
clear | |||
echo "Entrer le login pour l'interface d'administration :" | |||
while (true); do | |||
read loginhttp | |||
case $loginhttp in | |||
* ) | |||
echo "login: $loginhttp" > /root/passwordCTadmin | |||
break | |||
;; | |||
esac | |||
done | |||
clear | |||
echo "Entrer le mot de $loginhttp :" | |||
while (true); do | |||
read password | |||
case $password in | |||
* ) | |||
echo "password: $password" >> /root/passwordCTadmin | |||
addadminhttpd "$loginhttp" "$password" | |||
break | |||
;; | |||
esac | |||
done | |||
chmod 700 /root/passwordCTadmin | |||
chown root:root /root/passwordCTadmin | |||
cat << EOF > $CTPARENTALCONFHTTPD | cat << EOF > $CTPARENTALCONFHTTPD | ||
fastcgi.server = ( | |||
".php" => ( | |||
"localhost" => ( | |||
"bin-path" => "/usr/bin/php-cgi", | |||
"socket" => "/run/lighttpd/php-fastcgi.sock", | |||
"max-procs" => 4, # default value | |||
"bin-environment" => ( | |||
"PHP_FCGI_CHILDREN" => "1", # default value | |||
), | |||
"broken-scriptfilename" => "enable" | |||
)) | |||
) | |||
fastcgi.map-extensions = ( ".php3" => ".php", | |||
".php4" => ".php", | |||
".php5" => ".php", | |||
".phps" => ".php", | |||
".phtml" => ".php" ) | |||
\$HTTP["url"] =~ ".*CTadmin.*" { | |||
auth.require = ( "" => | |||
( | |||
"method" => "digest", | |||
"realm" => "$REALMADMINHTTPD", | |||
"require" => "user=$USERADMINHTTPD" | |||
) | |||
) | |||
} | |||
\$SERVER["socket"] == "$PRIVATE_IP:80" { | \$SERVER["socket"] == "$PRIVATE_IP:80" { | ||
server.document-root = "$DIRHTML" | server.document-root = "$DIRHTML" | ||
Ligne 526 : | Ligne 631 : | ||
EOF | EOF | ||
chown root:$GROUPHTTPD $DREAB | |||
chmod 660 $DREAB | |||
chown root:$GROUPHTTPD $DNS_FILTER_OSSI | |||
chmod 660 $DNS_FILTER_OSSI | |||
chown root:$GROUPHTTPD $CATEGORIES_ENABLED | |||
chmod 660 $CATEGORIES_ENABLED | |||
chmod 660 /etc/sudoers | |||
is_sudo_ok=`grep $USERHTTPD /etc/sudoers |wc -l` | |||
if [ $is_sudo_ok -ge "1" ] ; then | |||
$SED "s?^$USERHTTPD.*?$USERHTTPD ALL=(ALL) NOPASSWD:/usr/local/bin/CTparental.sh -tlu,/usr/local/bin/CTparental.sh -trf,/usr/local/bin/CTparental.sh -dble,/usr/local/bin/CTparental.sh -ubl,/usr/local/bin/CTparental.sh -dl,/usr/local/bin/CTparental.sh -on,/usr/local/bin/CTparental.sh -off,/usr/local/bin/CTparental.sh -aupon,/usr/local/bin/CTparental.sh -aupoff?g" /etc/sudoers | |||
else | |||
echo "$USERHTTPD ALL=(ALL) NOPASSWD:/usr/local/bin/CTparental.sh -tlu,/usr/local/bin/CTparental.sh -trf,/usr/local/bin/CTparental.sh -dble,/usr/local/bin/CTparental.sh -ubl,/usr/local/bin/CTparental.sh -dl,/usr/local/bin/CTparental.sh -on,/usr/local/bin/CTparental.sh -off,/usr/local/bin/CTparental.sh -aupon,/usr/local/bin/CTparental.sh -aupoff" >> /etc/sudoers | |||
fi | |||
chmod 440 /etc/sudoers | |||
if [ ! -f $FILE_HCONF ] ; then | |||
echo > $FILE_HCONF | |||
fi | |||
chown root:$GROUPHTTPD $FILE_HCONF | |||
chmod 660 $FILE_HCONF | |||
$CMDSERVICE$namservicehttpd start | $CMDSERVICE$namservicehttpd start | ||
} | } | ||
Ligne 542 : | Ligne 665 : | ||
$CMDINSTALL dnsmasq | $CMDINSTALL dnsmasq | ||
$CMDINSTALL lighttpd | $CMDINSTALL lighttpd | ||
$CMDINSTALL php5-cgi | |||
if [ ! -f blacklists.tar.gz ] | if [ ! -f blacklists.tar.gz ] | ||
then | then | ||
Ligne 557 : | Ligne 681 : | ||
catChoice | catChoice | ||
dnsmasqon | dnsmasqon | ||
$CMDINSTALL | $SED "s?^LASTUPDATE.*?LASTUPDATE=$THISDAYS=`date +%d-%m-%Y\ %T`?g" $FILE_CONF | ||
$CMDINSTALL $paquetresolv | |||
confresolvconf | confresolvconf | ||
Ligne 604 : | Ligne 729 : | ||
rm -rf /usr/share/lighttpd/* | rm -rf /usr/share/lighttpd/* | ||
rm -f $CTPARENTALCONFHTTPD | rm -f $CTPARENTALCONFHTTPD | ||
rm -rf $DIRadminHTML | |||
rm -f $RESOLVDNSMASQ | rm -f $RESOLVDNSMASQ | ||
resolvconf -u | resolvconf -u | ||
Ligne 609 : | Ligne 735 : | ||
$CMDREMOVE lighttpd | $CMDREMOVE lighttpd | ||
$CMDREMOVE dnsmasq | $CMDREMOVE dnsmasq | ||
$CMDREMOVE | $CMDREMOVE $paquetresolv | ||
} | } | ||
Ligne 708 : | Ligne 834 : | ||
echo "Aucun gestionner de session connu , n'a été détecté." | echo "Aucun gestionner de session connu , n'a été détecté." | ||
echo " il est donc impossible d'activer le controle horaires des connections" | echo " il est donc impossible d'activer le controle horaires des connections" | ||
desactivetimelogin | |||
exit 1 | exit 1 | ||
fi | fi | ||
Ligne 719 : | Ligne 846 : | ||
echo > /etc/cron.d/CTparental${DAYS[$NumDAY]} | echo > /etc/cron.d/CTparental${DAYS[$NumDAY]} | ||
done | done | ||
for PCUSER in `cat /etc/passwd | cut -d":" -f1,3| grep -E [1-9][0-9][0-9][0-9] | for PCUSER in `cat /etc/passwd | cut -d":" -f1,3| grep -E [1-9][0-9][0-9][0-9] | cut -d ":" -f1` | ||
do | do | ||
echo $PCUSER | $SED "/^$PCUSER=/d" $FILE_HCONF | ||
echo -e -n "$PCUSER est autoriser a ce connecter 7j/7 24h/24 O/N?" | |||
choi="" | |||
while (true); do | |||
read choi | |||
case $choi in | |||
O | o ) | |||
alltime="O" | |||
break | |||
;; | |||
N| n ) | |||
alltime="N" | |||
break | |||
;; | |||
esac | |||
done | |||
HORAIRES="" | HORAIRES="" | ||
for NumDAY in 0 1 2 3 4 5 6 | for NumDAY in 0 1 2 3 4 5 6 | ||
do | do | ||
if [$alltime = "O"];then | |||
echo "*;*;$PCUSER;Al0000-2400" >> $FILEPAMTIMECONF | |||
echo "$PCUSER=admin=" >> $FILE_HCONF | |||
break | |||
else | |||
echo "$PCUSER=user=" >> $FILE_HCONF | |||
fi | |||
clear | clear | ||
echo "exemple: | echo "exemple: 00h00 a 23h59 ou 08h00 a 12h00 et 14h00 a 16h50" | ||
echo -e -n "$RougeD$PCUSER$Fcolor est autorisés à se connecter le $BleuD${DAYS[$NumDAY]}$Fcolor de:" | echo -e -n "$RougeD$PCUSER$Fcolor est autorisés à se connecter le $BleuD${DAYS[$NumDAY]}$Fcolor de:" | ||
while (true); do | while (true); do | ||
Ligne 740 : | Ligne 890 : | ||
if [ ! $(echo $choi | grep -E -c ":") -eq 1 ] ; then | if [ ! $(echo $choi | grep -E -c ":") -eq 1 ] ; then | ||
if [ $NumDAY -eq 6 ] ; then | if [ $NumDAY -eq 6 ] ; then | ||
HORAIRESPAM=$HORAIRESPAM${DAYSPAM[$NumDAY]}$int1 | HORAIRESPAM="$HORAIRESPAM${DAYSPAM[$NumDAY]}$int1-$int2" | ||
else | else | ||
HORAIRESPAM=$HORAIRESPAM${DAYSPAM[$NumDAY]}$int1 | HORAIRESPAM="$HORAIRESPAM${DAYSPAM[$NumDAY]}$int1-$int2|" | ||
fi | fi | ||
MINUTES1=$(echo $int2 | sed -e 's/.\{02\}//') | MINUTES1=$(echo $int1 | sed -e 's/.\{02\}//') | ||
HEURES1=$(echo $int1 | sed -e 's/.\{02\}$//') | |||
echo "$ | MINUTES2=$(echo $int2 | sed -e 's/.\{02\}//') | ||
HEURES2=$(echo $int2 | sed -e 's/.\{02\}$//') | |||
echo "$PCUSER=$NumDAY=$HEURES1\h$MINUTES1\:$HEURES2\h$MINUTES2" >> $FILE_HCONF | |||
echo "$MINUTES2 $HEURES2 * * ${DAYSCRON[$NumDAY]} root /usr/bin/skill -KILL -u$PCUSER" >> /etc/cron.d/CTparental${DAYS[$NumDAY]} | |||
break | break | ||
Ligne 753 : | Ligne 906 : | ||
if [ $int3 -lt $int4 ];then | if [ $int3 -lt $int4 ];then | ||
if [ $NumDAY -eq 6 ] ; then | if [ $NumDAY -eq 6 ] ; then | ||
HORAIRESPAM=$HORAIRESPAM${DAYSPAM[$NumDAY]}$int1 | HORAIRESPAM="$HORAIRESPAM${DAYSPAM[$NumDAY]}$int1-$int2|${DAYSPAM[$NumDAY]}$int3-$int4" | ||
else | else | ||
HORAIRESPAM=$HORAIRESPAM${DAYSPAM[$NumDAY]}$int1 | HORAIRESPAM="$HORAIRESPAM${DAYSPAM[$NumDAY]}$int1-$int2|${DAYSPAM[$NumDAY]}$int3-$int4|" | ||
fi | fi | ||
MINUTES1=$(echo $int2 | sed -e 's/.\{02\}//') | MINUTES1=$(echo $int1 | sed -e 's/.\{02\}//') | ||
HEURES1=$(echo $int1 | sed -e 's/.\{02\}$//') | |||
MINUTES2=$(echo $int2 | sed -e 's/.\{02\}//') | |||
HEURES2=$(echo $int2 | sed -e 's/.\{02\}$//') | |||
MINUTES3=$(echo $int3 | sed -e 's/.\{02\}//') | |||
HEURES3=$(echo $int3 | sed -e 's/.\{02\}$//') | |||
MINUTES4=$(echo $int4 | sed -e 's/.\{02\}//') | |||
HEURES4=$(echo $int4 | sed -e 's/.\{02\}$//') | |||
## minutes heures jourdumoi moi jourdelasemaine utilisateur commande | ## minutes heures jourdumoi moi jourdelasemaine utilisateur commande | ||
echo "$PCUSER=$NumDAY=$HEURES1\h$MINUTES1\:$HEURES2\h$MINUTES2:$HEURES3\h$MINUTES3\:$HEURES4\h$MINUTES4" >> $FILE_HCONF | |||
echo "$MINUTES2 $HEURES2 * * ${DAYSCRON[$NumDAY]} root /usr/bin/skill -KILL -u$PCUSER" >> /etc/cron.d/CTparental${DAYS[$NumDAY]} | echo "$MINUTES2 $HEURES2 * * ${DAYSCRON[$NumDAY]} root /usr/bin/skill -KILL -u$PCUSER" >> /etc/cron.d/CTparental${DAYS[$NumDAY]} | ||
echo "$MINUTES4 $HEURES4 * * ${DAYSCRON[$NumDAY]} root /usr/bin/skill -KILL -u$PCUSER" >> /etc/cron.d/CTparental${DAYS[$NumDAY]} | |||
break | break | ||
else | else | ||
Ligne 788 : | Ligne 945 : | ||
echo "*;*;$PCUSER;$HORAIRESPAM" >> $FILEPAMTIMECONF | echo "*;*;$PCUSER;$HORAIRESPAM" >> $FILEPAMTIMECONF | ||
done | done | ||
for NumDAY in 0 1 2 3 4 5 6 | for NumDAY in 0 1 2 3 4 5 6 | ||
do | do | ||
echo >> /etc/cron.d/CTparental${DAYS[$NumDAY]} | echo >> /etc/cron.d/CTparental${DAYS[$NumDAY]} | ||
done | done | ||
echo >> $FILE_HCONF | |||
$SED "s?^HOURSCONNECT.*?HOURSCONNECT=ON?g" $FILE_CONF | |||
$CMDSERVICE$namservicecrond restart | $CMDSERVICE$namservicecrond restart | ||
} | } | ||
desactivetimelogin () { | desactivetimelogin () { | ||
for FILE in `echo $GESTIONNAIREDESESSIONS` | for FILE in `echo $GESTIONNAIREDESESSIONS` | ||
Ligne 804 : | Ligne 965 : | ||
rm -f /etc/cron.d/CTparental${DAYS[$NumDAY]} | rm -f /etc/cron.d/CTparental${DAYS[$NumDAY]} | ||
done | done | ||
$SED "s?^HOURSCONNECT.*?HOURSCONNECT=OFF?g" $FILE_CONF | |||
$CMDSERVICE$namservicecrond restart | $CMDSERVICE$namservicecrond restart | ||
} | } | ||
readTimeFILECONF () { | |||
TESTGESTIONNAIRE="" | |||
for FILE in `echo $GESTIONNAIREDESESSIONS` | |||
do | |||
if [ -f $DIRPAM$FILE ];then | |||
if [ $(cat $DIRPAM$FILE | grep -c "account required pam_time.so") -eq 0 ] ; then | |||
echo "account required pam_time.so" >> $DIRPAM$FILE | |||
fi | |||
TESTGESTIONNAIRE=$TESTGESTIONNAIRE\ $FILE | |||
fi | |||
done | |||
if [ $( echo $TESTGESTIONNAIRE | wc -m ) -eq 1 ] ; then | |||
echo "Aucun gestionner de session connu , n'a été détecté." | |||
echo " il est donc impossible d'activer le controle horaires des connections" | |||
desactivetimelogin | |||
exit 1 | |||
fi | |||
if [ ! -f $FILEPAMTIMECONF.old ] ; then | |||
cp $FILEPAMTIMECONF $FILEPAMTIMECONF.old | |||
fi | |||
echo "*;*;root;Al0000-2400" > $FILEPAMTIMECONF | |||
for NumDAY in 0 1 2 3 4 5 6 | |||
do | |||
echo > /etc/cron.d/CTparental${DAYS[$NumDAY]} | |||
done | |||
for PCUSER in `cat /etc/passwd | cut -d":" -f1,3| grep -E [1-9][0-9][0-9][0-9] | cut -d ":" -f1` | |||
do | |||
HORAIRESPAM="" | |||
userisconfigured="0" | |||
while read line | |||
do | |||
if [ $( echo $line | grep -E -c "^$PCUSER=[0-6]=" ) -eq 1 ] ; then | |||
echo "$line" | |||
NumDAY=$(echo $line | cut -d"=" -f2) | |||
h1=$(echo $line | cut -d"=" -f3 | cut -d":" -f1 | cut -d"h" -f1) | |||
m1=$(echo $line | cut -d"=" -f3 | cut -d":" -f1 | cut -d"h" -f2) | |||
h2=$(echo $line | cut -d"=" -f3 | cut -d":" -f2 | cut -d"h" -f1) | |||
m2=$(echo $line | cut -d"=" -f3 | cut -d":" -f2 | cut -d"h" -f2) | |||
h3=$(echo $line | cut -d"=" -f3 | cut -d":" -f3 | cut -d"h" -f1) | |||
m3=$(echo $line | cut -d"=" -f3 | cut -d":" -f3 | cut -d"h" -f2) | |||
h4=$(echo $line | cut -d"=" -f3 | cut -d":" -f4 | cut -d"h" -f1) | |||
m4=$(echo $line | cut -d"=" -f3 | cut -d":" -f4 | cut -d"h" -f2) | |||
if [ $(echo -n $h3$m3 | wc -c) -gt 2 ]; then | |||
if [ $NumDAY -eq 6 ] ; then | |||
HORAIRESPAM="$HORAIRESPAM${DAYSPAM[$NumDAY]}$h1$m1-$h2$m2|${DAYSPAM[$NumDAY]}$h3$m3-$h4$m4" | |||
else | |||
HORAIRESPAM="$HORAIRESPAM${DAYSPAM[$NumDAY]}$h1$m1-$h2$m2|${DAYSPAM[$NumDAY]}$h3$m3-$h4$m4|" | |||
fi | |||
echo "$m2 $h2 * * ${DAYSCRON[$NumDAY]} root /usr/bin/skill -KILL -u$PCUSER" >> /etc/cron.d/CTparental${DAYS[$NumDAY]} | |||
echo "$m4 $h4 * * ${DAYSCRON[$NumDAY]} root /usr/bin/skill -KILL -u$PCUSER" >> /etc/cron.d/CTparental${DAYS[$NumDAY]} | |||
userisconfigured="1" | |||
else | |||
if [ $NumDAY -eq 6 ] ; then | |||
HORAIRESPAM="$HORAIRESPAM${DAYSPAM[$NumDAY]}$h1$m1-$h2$m2" | |||
else | |||
HORAIRESPAM="$HORAIRESPAM${DAYSPAM[$NumDAY]}$h1$m1-$h2$m2|" | |||
fi | |||
echo "$m2 $h2 * * ${DAYSCRON[$NumDAY]} root /usr/bin/skill -KILL -u$PCUSER" >> /etc/cron.d/CTparental${DAYS[$NumDAY]} | |||
userisconfigured="1" | |||
fi | |||
fi | |||
done < $FILE_HCONF | |||
if [ $userisconfigured -eq 1 ] ; then | |||
echo "*;*;$PCUSER;$HORAIRESPAM" >> $FILEPAMTIMECONF | |||
else | |||
echo "*;*;$PCUSER;Al0000-2400" >> $FILEPAMTIMECONF | |||
fi | |||
done | |||
$SED "s?^HOURSCONNECT.*?HOURSCONNECT=ON?g" $FILE_CONF | |||
$CMDSERVICE$namservicecrond restart | |||
} | |||
Ligne 853 : | Ligne 1 097 : | ||
;; | ;; | ||
-u | --uninstall ) | -u | --uninstall ) | ||
autoupdateoff | |||
dnsmasqoff | |||
desactivetimelogin | |||
uninstall | uninstall | ||
exit 0 | exit 0 | ||
Ligne 861 : | Ligne 1 108 : | ||
catChoice | catChoice | ||
dnsmasqon | dnsmasqon | ||
$SED "s?^LASTUPDATE.*?LASTUPDATE=$THISDAYS=`date +%d-%m-%Y\ %T`?g" $FILE_CONF | |||
exit 0 | exit 0 | ||
;; | ;; | ||
Ligne 884 : | Ligne 1 131 : | ||
;; | ;; | ||
-off | --off ) | -off | --off ) | ||
autoupdateoff | |||
dnsmasqoff | dnsmasqoff | ||
exit 0 | exit 0 | ||
Ligne 907 : | Ligne 1 155 : | ||
-tlu | --timeloginon ) | -tlu | --timeloginon ) | ||
desactivetimelogin | desactivetimelogin | ||
;; | |||
-trf | --timeloginon ) | |||
readTimeFILECONF | |||
;; | ;; | ||
-aupon | --autoupdateon ) | -aupon | --autoupdateon ) | ||
Ligne 917 : | Ligne 1 168 : | ||
autoupdate | autoupdate | ||
;; | ;; | ||
*) | *) | ||
echo "Argument inconnu :$1"; | echo "Argument inconnu :$1"; | ||
Ligne 923 : | Ligne 1 175 : | ||
;; | ;; | ||
esac | esac | ||
</code> | </code> | ||
[[Catégorie:Scripts]] | [[Catégorie:Scripts]] |
modifications