在过去几年中,我一直使用Linux作为主要系统,特别是Fedora,我一直看到我的主机名设置为“ localhost”,但当我连接到某些网络并成为IP时除外。今天,我遇到了以下行为,但是我很难理解。
我在笔记本电脑的另一个分区上设置了Ubuntu安装,并在Ubuntu安装过程中设置了计算机名称/主机名。但是,当我重新启动回Fedora时,Fedora已将我的主机名更新为我在Ubuntu安装中设置的名称。
我一直以为主机名已配置并存储在发行版安装的分区上,确实Fedora上/ etc / hostname的内容仍然显示为“ localhost.localdomain”,但是运行hostname
命令将显示新的主机名。这两个安装共享一个efi引导分区,但其他情况下是离散的。我想知道Fedora安装从何处以及为什么要读取新主机名?
该hostname
程序执行一个uname syscall,从运行中可以看出:
strace hostname
...
uname({sysname="Linux", nodename="my.hostname.com", ...}) = 0
...
从uname syscall手册页,它说syscall从内核中检索以下结构:
struct utsname {
char sysname[]; /* Operating system name (e.g., "Linux") */
char nodename[]; /* Name within "some implementation-defined
network" */
char release[]; /* Operating system release (e.g., "2.6.28") */
char version[]; /* Operating system version */
char machine[]; /* Hardware identifier */
#ifdef _GNU_SOURCE
char domainname[]; /* NIS or YP domain name */
#endif
};
因此,如果我们相信此评论,那么域名来自NIS / YP系统。因此,您的网络上可能存在NIS / YP服务,该服务正在将ubuntu OS设置的名称回滚给您。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句