1 votes

Pourquoi puis-je toujours accéder aux sites bloqués dans /etc/hosts ?

J'ai essayé de configurer launchd pour bloquer plusieurs sites web sous OS X 10.11.6.

En /etc/hosts La liste est modifiée à intervalles réguliers, mais un navigateur peut toujours accéder aux sites bloqués.

Un autre comportement étrange est que launchd semble exécuter les commandes lorsque je charge la plist, mais n'exécute pas les commandes pendant l'heure prévue.

En cherchant sur Internet, j'ai découvert que je devais peut-être réinitialiser le cache DNS :

sudo dscacheutil -flushcache;sudo killall -HUP mDNSResponder

Lorsque je l'exécute depuis la ligne de commande, je peux toujours accéder aux sites qui devraient être bloqués. Je ne sais pas non plus comment ajouter cela aux arguments du programme launchd plist si cela devait fonctionner.

$ cat /Library/LaunchDaemons/local.hosts.blockingAM.plist

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">  
<plist version="1.0">  
<dict>  
    <key>Label</key>  
    <string>local.hosts.blockingAM</string>  
    <key>ProgramArguments</key>  
    <array>  
        <string>cp</string>  
        <string>/etc/hosts_BLOCKED_sites.txt</string>  
        <string>/etc/hosts</string>  
    </array>  
    <key>RunAtLoad</key>  
    <true/>  
    <key>StartCalendarInterval</key>  
    <array>  
        <dict>  
            <key>Hour</key>  
            <integer>8</integer>  
            <key>Minute</key>  
            <integer>15</integer>  
            <key>Weekday</key>  
            <integer>1</integer>  
        </dict>  
        <dict>  
            <key>Hour</key>  
            <integer>8</integer>  
            <key>Minute</key>  
            <integer>15</integer>  
            <key>Weekday</key>  
            <integer>2</integer>  
        </dict>  
        <dict>  
            <key>Hour</key>  
            <integer>9</integer>  
            <key>Minute</key>  
            <integer>35</integer>  
            <key>Weekday</key>  
            <integer>3</integer>  
        </dict>  
        <dict>  
            <key>Hour</key>  
            <integer>8</integer>  
            <key>Minute</key>  
            <integer>15</integer>  
            <key>Weekday</key>  
            <integer>4</integer>  
        </dict>  
        <dict>  
            <key>Hour</key>  
            <integer>8</integer>  
            <key>Minute</key>  
            <integer>15</integer>  
            <key>Weekday</key>  
            <integer>5</integer>  
        </dict>  
    </array>  

    <key>StandardErrorPath</key>  
    <string>/tmp/local.hosts.blocking.err</string>                                                           
    <key>StandardOutPath</key>   
    <string>/tmp/local.hosts.blocking.out</string>    
    </dict>  
    </plist>  

Voici les permissions :
$ ls -la /Library/LaunchDaemons/local.hosts.blockingAM.plist

-rw-r--r--@ 1 root  wheel  1474 Sep  8 09:33 /Library/LaunchDaemons/local.hosts.blockingAM.plist

Je charge le plist avec :

$ sudo launchctl load /Library/LaunchDaemons/local.hosts.blockingAM.plist   

Aucune erreur n'est enregistrée :
$ cat /tmp/local.hosts.blocking.err

Voici le fichier contenant les sites bloqués :
$ cat /etc/hosts_BLOCKED_sites.txt

##  
# Host Database  
#  
# localhost is used to configure the loopback interface  
# when the system is booting.  Do not change this entry.  
##  
127.0.0.1   localhost  
255.255.255.255 broadcasthost  
::1             localhost   

# Blocked sites redirected to 0.0.0.0  
0.0.0.0 reddit.com www.reddit.com  
0.0.0.0 facebook.com www.facebook.com  

Qu'est-ce que je fais de mal ?

1voto

dr.nixon Points 4692

Avez-vous vraiment vérifié votre /etc/hosts pour être certain qu'il est modifié ? En guise de test, j'ai laissé tomber 127.0.0.1 foo.com www.foo.com dans mon /etc/hosts et j'ai essayé de charger le site ; il est immédiatement passé à localhost comme prévu. Il se peut que vous ne fassiez rien de mal avec le /etc/hosts Cependant, il y a de fortes chances que les modifications que vous demandez ne se retrouvent jamais dans le fichier.

J'essaierais aussi mv au lieu de cp . mv ne changera pas les permissions des fichiers, il ne fait que délier la cible et renommer la source : vous devrez donc vous souvenir de faire un échange en premier (par ex. mv /etc/hosts /etc/hosts_default && mv /etc/hosts_BLOCKED_sites.txt /etc/hosts inversez l'ordre lorsque vous voulez débloquer, pensez à vider le cache DNS après chaque changement et assurez-vous que /etc/hosts_BLOCKED_sites.txt a les mêmes permissions/propriété que /etc/hosts avant de commencer)

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X