В доступе отказано в доступе r "C: \ Windows \ System32 \ Drivers \ etc \ hosts" - PullRequest
0 голосов
/ 07 декабря 2018

поэтому у меня возникла проблема при попытке запустить этот код Python от имени администратора, поэтому я не могу получить доступ и записать файл хоста.Может кто-нибудь мне помочь?Я просмотрел много других вопросов, но ни один из них, похоже, не работает.

Каталог файлов хоста: C: \ Windows \ System32 \ Drivers \ etc \ hosts

(Например, * Запросить повышение UAC из скрипта Python?

Некоторые из этих ответов на самом деле работают с запросом на получение доступа администратора, но все равно не дают разрешения моей программе.Единственный способ, который я понял, - сначала запустить оболочку Python от имени администратора, а затем запустить код или запустить командную строку от имени администратора и открыть файл Python с помощью командной строки.

ВЕБ-САЙТ

https://boostlog.io/@faisalnad/create-a-website-blocker-with-python-5afe86ff47018500491f4898

Эта программа предназначена для блокировки веб-сайта.

import time 
from datetime import datetime as dt 

# change hosts path according to your OS 
hosts_path = r”C:\Windows\System32\Drivers\etc\hosts”
# localhost's IP 
redirect = "127.0.0.1"

# websites That you want to block 
website_list = ["www.facebook.com","facebook.com", 
      "dub119.mail.live.com","www.dub119.mail.live.com", 
      "www.gmail.com","gmail.com"] 

while True: 

    # time of your work 
    if dt(dt.now().year, dt.now().month, dt.now().day,8)  < dt.now() < dt(dt.now().year, dt.now().month, dt.now().day,16): 
        print("Working hours...") 
        with open(hosts_path, 'r+') as file: 
            content = file.read() 
            for website in website_list: 
                if website in content: 
                    pass
                else: 
                    # mapping hostnames to your localhost IP address 
                    file.write(redirect + " " + website + "\n") 
    else: 
        with open(hosts_path, 'r+') as file: 
            content=file.readlines() 
            file.seek(0) 
            for line in content: 
                if not any(website in line for website in website_list): 
                    file.write(line) 

            # removing hostnmes from host file 
            file.truncate() 

        print("Fun hours...") 
    time.sleep(5) 

Это ошибка:

Working hours...
Traceback (most recent call last):
  File "C:\Users\Key\Desktop\random project.py", line 19, in <module>
    with open(hosts_path, 'r+') as file:
PermissionError: [Errno 13] Permission denied: 'C:\\Windows\\System32\\Drivers\\etc\\hosts'

СПРАВОЧНИК ФАЙЛА enter image description here

1 Ответ

0 голосов
/ 07 декабря 2018

Вы можете добавить разрешение на запись для пользователя, под которым ваша программа запускается, следуя этой ссылке , чтобы добавить разрешение в файл хоста

...