修改resolv.conf的Python脚本[权限问题]

2 投票
3 回答
2159 浏览
提问于 2025-04-16 12:04

大家好,我刚开始学习Python。我想写一个脚本来更改DNS。

但是我发现resolv.conf是一个只读文件,在我写了代码之后出现了这个错误:IOError: [Errno 13] Permission denied: '/etc/resolv.conf'

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

然后,我稍微查了一下,发现了os.chmode()这个函数,于是我写了一行代码,想要去掉resolv.conf的所有权限,代码是:

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

但是现在我又遇到了这个错误:IOError: [Errno 13] Permission denied: '/etc/resolv.conf'

我一直无法解决这个问题,期待你们的建议。

谢谢大家。

3 个回答

0

你绝对不应该让像 resolv.conf 这样的文件被所有人都能写。看起来你在尝试用 chmod 命令把它的权限改成 777,这样做真的很糟糕。因为如果有人能修改这个文件,他们可以改变你电脑的解析器,让它指向一些恶意设置的系统。举个例子,有人可以搭建自己的 LDAP 服务器,然后通过修改 resolv.conf,让你的系统使用他们的解析器和 LDAP 服务器,这样他们可能就能获得更高的权限。

所以,务必要时刻保护好这个文件。

0

在运行你的脚本之前,你必须以管理员身份执行chmod命令。等你获得了权限后,你的脚本就可以顺利运行,不会出错。

6

/etc/resolv.conf 文件通常是由 root 用户拥有的。除非你的脚本以某种方式运行,能够获得 超级用户权限,否则它将无法修改这个文件。

撰写回答