1 votos

¿Por qué puedo seguir accediendo a sitios bloqueados en /etc/hosts?

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

El /etc/hosts La lista se modifica de forma programada, pero un navegador puede seguir accediendo a los sitios bloqueados.

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

Al buscar en Google, me han sugerido que podría tener que restablecer la caché de DNS:

sudo dscacheutil -flushcache;sudo killall -HUP mDNSResponder

Cuando ejecuto eso desde la línea de comandos todavía puedo acceder a los sitios que deberían estar bloqueados. No sé cómo añadir esto a los argumentos del programa launchd plist tampoco si fuera a funcionar.

$ 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

Cargo el plist con:

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

No se registran errores:
$ 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?

1voto

Maxim Puntos 428

¿Ha comprobado realmente su /etc/hosts para estar seguro de que se está modificando? Como prueba, he dejado caer 127.0.0.1 foo.com www.foo.com en mi /etc/hosts y traté de cargar el sitio; inmediatamente fue a localhost como se esperaba. Es posible que no esté haciendo nada malo con el /etc/hosts Sin embargo, es muy probable que los cambios que usted solicita nunca lleguen al archivo.

También probaría mv en lugar de cp . mv no cambiará los permisos de los archivos, sólo desvincula el destino y cambia el nombre del origen: así que tendrás que acordarte de intercambiar primero (por ejemplo mv /etc/hosts /etc/hosts_default && mv /etc/hosts_BLOCKED_sites.txt /etc/hosts , invierta el orden cuando quiera desbloquear, recuerde vaciar la caché de DNS después de cada cambio, y asegúrese de que /etc/hosts_BLOCKED_sites.txt tiene los mismos permisos/propiedad que /etc/hosts antes de empezar)

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X