Я хочу записать содержимое в файл с python.Расположение файла находится в пути к корневому каталогу: /etc/hosts
Ниже указаны права доступа к файлу
-rw-r--r-- 1 root root
Я хочу обновить этот файл, и он может быть обновлен только с помощью Судо .Итак, я написал следующий скрипт:
path = "/etc/hosts"
fr = open(path,'r')
b = fr.read()
b = b+'something to write'
fr.close()
fw = open(path,'w')
fw = os.system('echo %s|sudo -S python %s' % ('root', fw.write(b)))
Но я получаю сообщение об ошибке «Отказано в доступе»:
IOError: [Errno 13] Отказано в доступе: u '/ etc / hosts'
Я также пытался с подпроцессом:
os.popen("sudo -S %s"%(open(path,'w')), 'w').write(admin_password)
Но это опять не сработало.
Как мне решить эту проблему?