¿Por qué todavía puedo acceder a los sitios bloqueados en / etc / hosts?

0

He estado intentando configurar launchd para bloquear varios sitios web en OS X 10.11.6

La lista /etc/hosts se modifica según lo programado, pero un navegador todavía puede acceder a los sitios bloqueados.

Otro comportamiento extraño es que launchd parece ejecutar los comandos cuando carga el plist, pero no ejecuta los comandos durante el tiempo programado.

Algunos usuarios de Google sugirieron que podría necesitar restablecer el caché de DNS:

sudo dscacheutil -flushcache;sudo killall -HUP mDNSResponder

Cuando lo ejecuto desde la línea de comandos, todavía puedo acceder a los sitios que deberían estar bloqueados. No sé cómo agregar esto a los argumentos del programa launchd plist si funcionara.

$ 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>  

Aquí están los permisos:
$ 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

Carga la lista con:

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

No hay errores registrados:
$ cat /tmp/local.hosts.blocking.err

Aquí está el archivo que contiene los sitios bloqueados:
$ 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é estoy haciendo mal?

    
pregunta BryanWheelock 12.09.2016 - 16:15

1 respuesta

1

¿Realmente has revisado tu /etc/hosts para estar seguro de que se está modificando? Como prueba, solté 127.0.0.1 foo.com www.foo.com en mi /etc/hosts e intenté cargar el sitio; Inmediatamente fue a localhost como se esperaba. Es posible que no esté haciendo nada mal con el código /etc/hosts ; sin embargo, hay una buena posibilidad de que los cambios que solicitas nunca lleguen al archivo en primer lugar.

También probaría mv en lugar de cp . mv no cambiará los permisos de los archivos, simplemente desvinculará el objetivo y cambiará el nombre de la fuente: por lo que deberá recordar intercambiar primero (por ejemplo, mv /etc/hosts /etc/hosts_default && mv /etc/hosts_BLOCKED_sites.txt /etc/hosts , invierta el orden cuando desee desbloquear, recuerde vaciar el caché de DNS) después de cada cambio, y asegúrese de que /etc/hosts_BLOCKED_sites.txt tenga los mismos permisos / propiedad que /etc/hosts antes de comenzar)

    
respondido por el dr.nixon 12.09.2016 - 19:21

Lea otras preguntas en las etiquetas