Скрипт Python для изменения resolv.conf [Проблема с правами доступа] - PullRequest
1 голос
/ 18 февраля 2011

Привет всем, я только новичок в Python.Я хотел написать скрипт на Python для изменения DNS.

Но я узнал, что resolv.conf - это файл только для чтения , после написания этого кода.Потому что я взял эту ошибку: IOError: [Errno 13] В доступе отказано: '/etc/resolv.conf'

myFile= open("/etc/resolv.conf", "w")

Затем я немного поискал и обнаружил os.chmode()и я написал новую строку, чтобы удалить все привилегии resolv.conf , что:

os.chmod("/etc/resolv.conf", 0777)

Но теперь я принимаю эту ошибку: IOError: [Errno 13] В доступе отказано: '/etc/resolv.conf'

Я не могу ответить на этот вопрос, и я жду ваших советов.

Спасибовы.

Ответы [ 3 ]

6 голосов
/ 18 февраля 2011

/etc/resolv.conf обычно принадлежит root. Если ваш скрипт не запускается таким образом, чтобы он имел привилегии root , он не сможет изменить файл.

0 голосов
/ 18 февраля 2011

Никогда не разрешайте всем доступным для записи файлам, таким как resolv.conf. Похоже, вы пытались это сделать или пытаться в любом случае на 777. Это действительно плохо. Кто-то может многое сделать, изменив распознаватель на узле и заставив его указывать на системы, которые были настроены по злонамеренным причинам. Например, можно создать собственный сервер LDAP и, изменив resolv.conf, указать систему на своем преобразователе и на своем сервере LDAP, тем самым, возможно, получив привилегированные уровни доступа.

Держите этот файл всегда заблокированным.

0 голосов
/ 18 февраля 2011

Chmod вы должны запустить от имени пользователя root перед вашим скриптом.И когда вы получите разрешения, ваш скрипт будет работать без ошибок

...