嘿大家,我只是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'
我无法解决这个问题而且我在等你的建议。
谢谢。
答案 0 :(得分:6)
/etc/resolv.conf
通常归root
所有。除非您的脚本以root privileges的方式运行,否则它将无法更改文件。
答案 1 :(得分:0)
Chmod你必须在脚本之前以root身份运行。当您获得权限时,您的脚本将正常运行
答案 2 :(得分:0)
你永远不应该让resolv.conf这样的文件可以被所有人写入。看起来你正在调整它,或者试图对777进行调整。这真的很糟糕。通过更改主机上的解析程序并使该主机指向由于恶意原因而设置的系统,可以做很多事情。例如,可以拥有自己的LDAP服务器,并通过更改resolv.conf将系统指向其解析程序及其LDAP服务器,从而可能获得特权级别的访问权限。
始终锁定此文件。