Perché posso ancora accedere ai siti bloccati in / etc / hosts?

0

Ho provato a installare launchd per bloccare diversi siti Web su OS X 10.11.6

L'elenco /etc/hosts viene modificato in base alla pianificazione, ma un browser può ancora accedere ai siti bloccati.

Un altro strano comportamento è che launchd sembra eseguire i comandi quando carico il plist, ma non esegue i comandi durante il tempo pianificato.

Alcuni google hanno suggerito che potrebbe essere necessario ripristinare la cache DNS:

sudo dscacheutil -flushcache;sudo killall -HUP mDNSResponder

Quando lo eseguo dalla riga di comando posso ancora accedere ai siti che dovrebbero essere bloccati. Non so come aggiungere questo agli argomenti del programma plist del launchd se dovesse funzionare.

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

Ecco le autorizzazioni:
$ 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

Carica i plist con:

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

Non ci sono errori registrati:
$ cat /tmp/local.hosts.blocking.err

Ecco il file contenente i siti bloccati:
$ 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  

Che cosa sto sbagliando?

    
posta BryanWheelock 12.09.2016 - 16:15
fonte

1 risposta

1

Hai effettivamente controllato il tuo /etc/hosts per essere certo che sia stato modificato? Come test, ho eliminato 127.0.0.1 foo.com www.foo.com nel mio /etc/hosts e ho provato a caricare il sito; è andato immediatamente a localhost come previsto. Potresti non aver fatto nulla di sbagliato con il codice /etc/hosts ; tuttavia, ci sono buone probabilità che le modifiche che stai richiedendo non vengano mai inserite nel file.

Proverei anche mv anziché cp . mv non cambierà i permessi dei file, semplicemente scollega il target e rinomina la fonte: quindi dovrai ricordarti di scambiare prima (es. mv /etc/hosts /etc/hosts_default && mv /etc/hosts_BLOCKED_sites.txt /etc/hosts , invertire l'ordine quando vuoi sbloccare, ricorda di svuotare la cache DNS dopo ogni modifica e assicurati che /etc/hosts_BLOCKED_sites.txt abbia le stesse autorizzazioni / proprietà di /etc/hosts prima di iniziare)

    
risposta data 12.09.2016 - 19:21
fonte

Leggi altre domande sui tag