Interdire l'accès à certains sites avec /etc/hosts
J'utilise depuis des années ce fichier dans lequel j'ai chargé une liste de sites peu recommandables, cf. https://doc.ubuntu-fr.org/hosts#utiliser_le_fichier_hosts_pour_bloquer_des_sites_web.
Pour ces sites, c'est permanent, donc une fois mis en place, c'est fini sauf à le mettre à jour de temps à autre pour en ajouter (et éventuellement en enlever).
De façon variable avec un script bash et anacron
Pour des ados qui sont un peu trop accros à certains sites (réseaux sociaux par exemple), il peut-être intéressant de les bloquer la semaine et de les autoriser le week-end. J'ai donc créé deux fichiers :
- /etc/hosts-semaine
- /etc/hosts-week-end
Voici un script bash que j'ai nommé switch-hosts.sh, déposé dans mon répertoire /home/$USER/bin pour réaliser la bascule :
#!/bin/bash
# bcag2 - touticphoto.fr - 2021 march
# Si le jours de semaine est samedi ou dimanche, cp /etc/hosts/hosts-week-end /etc/hosts
# Sinon cp /etc/hosts/hosts-semaine /etc/hosts
day_of_week=$(date +%A) if [ "$day_of_week" = "samedi" ] || [ "$day_of_week" = "dimanche" ]; then
cp /etc/hosts-week-end /etc/hosts
else
cp /etc/hosts-semaine /etc/hosts
fi
Il faut maintenant exécuter ce script, le PC n'étant pas un serveur, CRON ne convient pas mais https://doc.ubuntu-fr.org/anacron convient bien
Il suffit de lancer la vérification à chaque démarrage :
On ajoute donc dans le fichier /etc/anacrontab la ligne suivante en fin de fichier :
1 2 switchhosts bash /home/<votre-nom-utilisateur>/bin/switch-hosts.sh
- 1 permet de le lancer chaque jour,
- 2 de le lancer 2 minutes après le démarrage (1 peut sans doute convenir)
switchhosts
n'est qu'une étiquette- et le reste permet d'exécuter le script