修改resolv.conf的Python脚本[权限问题]
大家好,我刚开始学习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
用户拥有的。除非你的脚本以某种方式运行,能够获得 超级用户权限,否则它将无法修改这个文件。