我使用 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
它。