无法更新resolv.conf
文件。
/etc/resolv.conf" E166: Can't open linked file for writing
Ubuntu 18.04.1
答案1
这是假设您正在询问一条vim
错误消息(您没有指定从哪里收到错误消息)。
Vim 文档将 E166 报告为
E166 无法打开链接文件进行写入
您正在尝试写入无法覆盖的文件,并且该文件是一个链接(硬链接或符号链接)。如果包含链接或文件的目录可写,则可能仍然可以写入,但 Vim 现在不知道您是要删除链接并在其位置写入文件,还是要删除文件本身并在其位置写入新文件。如果您确实想以此名称写入文件,则必须手动删除链接或文件,或更改权限以便 Vim 可以覆盖。
http://vimdoc.sourceforge.net/htmldoc/message.html
guiverc@d960-ubu2:~$ stat /etc/resolv.conf
File: /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf
Size: 39 Blocks: 0 IO Block: 4096 symbolic link
Device: 801h/2049d Inode: 130757 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2018-09-03 12:34:28.189468370 +1000
Modify: 2017-11-16 12:32:04.777265492 +1100
Change: 2017-11-16 12:32:04.777265492 +1100
我stat
的 /etc/resolv.conf 确认该文件是一个链接。
我可以愉快地写入该文件(使用sudo
),因此您遇到的问题超出了您提供的内容。
答案2
如果/etc/resolv.conf
是符号链接,则无法写入。如果要覆盖文件中的内容,请删除该文件,然后创建新文件
- 删除符号链接
sudo rm /etc/resolv.conf
- 写入新文件。例如
sudo echo "nameserver 8.8.8.8" > /etc/resolv.conf
答案3
在我的情况下,当我通过 visudo
打开resolv.conf
文件时,它起作用了。如果文件尚不存在,它会创建一个。
$ sudo vi /etc/resolv.conf
答案4
我设法解决了这个问题。文件系统以(只读)方式挂载ro
,并且用户没有 root 权限。