Samba域配置(provision)失败求助
Samba域配置(provision)失败求助
嗨,根据你提供的操作过程和报错信息,这个问题很好解决,咱们一步步来:
问题根源
报错里已经说得明明白白啦:你的/etc/samba/smb.conf文件里缺少realm =配置项,而samba-tool domain provision在执行时要么需要读取正确的现有配置,要么就得由它自动生成全新的配置文件,旧配置拖了后腿才导致失败。
解决步骤
- 先备份一下现有的smb.conf,防止误删了之前的有用配置:
mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
- 重新执行域预配置命令:
samba-tool domain provision
- 按照之前的流程重新输入Realm、Domain、密码等信息就行,这次系统会自动生成包含正确
realm设置的全新smb.conf文件,不会再报错啦。
补充说明
大概率是你的系统里残留了旧的smb.conf文件(可能之前手动修改过或者安装时生成的默认配置),而这个旧配置里没有预配置脚本需要的realm参数,导致脚本执行失败。其实samba-tool domain provision本来就负责生成完整的域环境配置文件,完全不需要提前手动配置smb.conf,删除旧文件让脚本从头生成是最稳妥的方案。
附上你提供的操作过程和报错信息,方便其他同学参考:
执行命令:
[root@pubby samba-4.8.3]# samba-tool domain provision交互输入:
Realm [LOCAL]: Sang.com Domain [Sang]: Sang.com Server Role (dc, member, standalone) [dc]: DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: DNS forwarder IP address (write 'none' to disable forwarding) [192.168.254.2]: Administrator password: Administrator password does not meet the default minimum password length requirement (7 characters). Administrator password: Retype password:最终报错:
ERROR(<class 'samba.provision.ProvisioningError'>): Provision failed - ProvisioningError: guess_names: 'realm =' was not specified in supplied /etc/samba/smb.conf. Please remove the smb.conf file and let provision generate it File "/usr/lib64/python2.7/site-packages/samba/netcmd/domain.py", line 500, in run plaintext_secrets=plaintext_secrets) File "/usr/lib64/python2.7/site-packages/samba/provision/__init__.py", line 2116, in provision sitename=sitename, rootdn=rootdn, domain_names_forced=(samdb_fill == FILL_DRS)) File "/usr/lib64/python2.7/site-packages/samba/provision/__init__.py", line 620, in guess_names raise ProvisioningError("guess_names: 'realm =' was not specified in supplied %s. Please remove the smb.conf file and let provision generate it" % lp.configfile)
备注:内容来源于stack exchange,提问作者Sang Nguyễn
相关产品推荐
相关产品推荐

