我正在尝试使用 kickstart 设置主机块,有两个命令需要输入密码。一个是 kinit,对于这个命令,只需生成一个 keytab 文件并使用 -t 传递它就很容易了,另一个是执行 authconfig 命令时间接调用的 net join。
有没有办法通过凭证文件或使用密码哈希来传递密码?显然我不想仅将其作为纯文本传递。
@ewwhite 感谢提供链接,我会看看。我不确定任何事情,如果它能让我完成完全相同的事情并允许无人值守配置,我绝对不反对使用 SSSD 来做这件事。我使用 Samba/Winbind 更多地与我对它们的舒适程度有关。您能否建议我如何使用 SSSD 做同样的事情,同时记住我不想手动输入密码?
相关 kickstart 内容:
cat << EOF > /etc/samba/smb.conf
[global]
encrypt passwords = yes
# logs split per machine
log file = /var/log/samba/log.%m
# max 50KB per log file, then rotate
max log size = 50
passdb backend = tdbsam
EOF
chkconfig smb on
chkconfig nmb on
service smb restart
service nmb restart
cat << EOF > /etc/krb5.conf
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = AD.DOMAIN.NET
dns_lookup_realm = true
dns_lookup_kdc = true
allow_weak_crypto = false
ticket_lifetime = 24h
renew_lifetime = 7d
rdns = false
forwardable = true
[realms]
AD.DOMAIN.NET = {
admin_server = dc01.ad.domain.net
default_domain = ad.domain.net
kdc = dc01.ad.domain.net
}
[domain_realm]
.ad.domain.net = AD.DOMAIN.NET
ad.domain.net = AD.DOMAIN.NET
EOF
net time set -S dc01.ad.domain.net
/usr/bin/kinit -k -t addom.keytab [email protected]
authconfig --update \
--kickstart \
--enablewinbind \
--enablewinbindauth \
--smbsecurity=ads \
--smbrealm=AD.DOMAIN.NET \
[email protected] \
--winbindtemplatehomedir=/home/DOMAIN/%U \
--winbindtemplateshell=/bin/bash \
--enablewinbindusedefaultdomain \
--enablelocauthorize \
--smbservers=dc01.ad.domain.net \
--enablemkhomedir \
--smbidmaprange=100000-200000
答案1
有很多选择...参见:关于 Linux 服务器的 Active Directory 身份验证的常识?
有了 EL6,您当然您想使用 Samba/Winbind 路线吗?如今,一个精心设计的authconfig
字符串和一个 SSSD 配置 ( /etc/sssd/sssd.conf
) 文件几乎就是您所需要的全部内容...(除非您尝试集成主目录)
你的 kickstart 中现在有什么?
答案2
事实证明,net 命令有一个使用 kerberos keytab 的选项,只是必须比以前更好地阅读手册页。以下是对我有用的方法:
在域控制器上
ktpass princ host/[email protected] mapuser AD\Administrator -pass * out test.keytab
在计算机上进行连接
kinit -k -t /tmp/test.keytab
net ads join -k