`sudo visudo /etc/hosts` 出现语法错误

`sudo visudo /etc/hosts` 出现语法错误

真是个愚蠢的问题,Ubuntu 20,我安装了 apache2,没有其他东西。我想sudo visudo /etc/hosts添加一个别名“dummy.com”域别名,作为一种黑客手段,指向仅用于本地测试学习网站的服务器,但我得到了这个不寻常的

>> /etc/hosts: syntax error near line 1 <<<
>>> /etc/hosts: syntax error near line 2 <<<
>>> /etc/hosts: syntax error near line 5 <<<
>>> /etc/hosts: syntax error near line 6 <<<
>>> /etc/hosts: syntax error near line 7 <<<
>>> /etc/hosts: syntax error near line 8 <<<
>>> /etc/hosts: syntax error near line 9 <<<
What now? Q

我删除了该127.0.0.1 localhost notmydomain.com行,所以现在这是我的文件,为什么每次我编辑它时都会出现上述语法错误?

conrad@conrad-VirtualBox:~$ cat /etc/hosts
127.0.0.1   localhost
127.0.1.1   conrad-VirtualBox

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

感到很困惑,因为当我访问 fakedomain.com 时浏览器确实可以工作(奇怪的是,即使在我删除了 fakedomain.com 别名并运行后,别名仍然在浏览器中继续工作sudo service network-manager restart。)我在这上面浪费了太多时间,我打算重新安装,但很想知道我可能哪里做错了。

答案1

visudo是用于编辑/etc/sudoers文件的命令(并且仅有的该文件将被重新打包,并执行完整性检查以确保该文件有效。

如果您将文件作为参数传递给它,它将查找另一个sudoers文件并检查语法。由于是/etc/hosts具有另一种语法的不同文件,因此会出现错误。

只需/etc/hosts用你最喜欢的编辑器进行编辑,如下所示:

sudo vim /etc/hosts

或者您可以使用sudoedit(或sudo -e)命令,其工作方式与运行相同crontab -e(您编辑临时文件,完成后将其复制到目标):

sudoedit /etc/hosts

相关内容