我们试图在 Ubuntu 机器上安装我们的软件。为此,我们需要root
特权。基本上,我们需要做的就是运行一个可运行的 jar,例如sudo java -jar runnableJar.jar
:
所有此类命令都会返回:Unable to resolve host xxxxx
。
该/etc/hosts
文件hostname
针对导致此错误的环回接口列出了不正确的信息。所有不需要的命令都sudo
运行良好。
我一直在阅读环回接口,我的理解是它设置本地主机并且是一个虚拟网络接口。然而,为什么sudo
需要它呢?
答案1
由于 sudoers 文件允许在规则中指定主机名,因此sudo
需要知道您的 Ubuntu 计算机的名称是什么。
因此,sudo
收集 Ubuntu 计算机上所有接口的列表(环回和“真实”)。请参阅sudo
下面链接中的interfaces.c 源代码中的相关部分。
http://www.sudo.ws/repos/sudo/file/d8150a3fd577/interfaces.c