为什么“hostname -d”给出的输出与域名不同?

为什么“hostname -d”给出的输出与域名不同?

我使用 samba 4 将一台 Ubuntu 14.04 机器加入到域中,但身份验证不起作用。看看我得到了什么:

# net ads keytab create -U 'admin'
Enter admin's password:
ads_get_dnshostname: No dNSHostName attribute!
../source3/libads/kerberos_keytab.c:328: unable to determine machine account's dns name in AD! 

测试我的 FQDN 是否正确,我得到:

# hostname -d
dom.forest.int

# domainname
(none) 

为什么域名行为不同于主机名-d? 这可能是 Samba 的问题吗?

这是我的配置:

# grep MYPCNAME /etc/hosts
127.0.1.1       MYPCNAME.dom.forest.int MYPCNAME

和这个:

# cat /etc/hostname
MYPCNAME

我的配置正确吗?我该如何进一步排除故障?

答案1

你得到的答案不同,因为hostaname给你的是“名称在域之前”。命令hostname -d给你的是域,又名DNS domain name

您将通过命令获得完整的主机名hostname -f

某种程度上可以说hostname+ hostname -d=hostname -f

答案2

使用“dnsdomainname”,而不是“domainname”:

domainname - show or set system's NIS/YP domain name ... dnsdomainname - show the system's DNS domain name

来源:HOSTNAME(1) (“man domainname”)

答案3

手册页解释得很清楚。引用自man hostname

-d, --domain
                  Display  the  name  of the DNS domain. Don't use the command domainname to get the DNS domain name because it will show the NIS domain name and not the DNS domain name. Use dnsdomainname instead.

所以domainname会显示 NIS 域名,您需要使用dnsdomainname它。

相关内容