我正在尝试使用 sssd 进行 LDAP 身份验证,虽然它可以使用命令显示用户 ID id
,getent group
但getent passwd
不显示 LDAP 名称,而且虽然我可以将文件 chown 为 ldap 用户,但它们ls -lah
却是nobody
。
经过一番挖掘,我发现了一个提示:匿名绑定 LDAP 时可能会出现此问题。
但是当我设置 sss 时,没有提供绑定 DN 或密码的选项。我也无法在手册中找到正确的指令。
我应该在哪里指定 sss+ldap 的绑定 DN 和密码?它应该放在哪里/etc/sssd/sssd.conf
?还是另一个文件?
答案1
您必须在 中创建一个 [域] 部分/etc/sssd/sssd.conf
。
你可以浏览
man sssd-ldap
但它确实很庞大!这应该让你大吃一惊。根据您的环境,这里并非所有指令都是必需的。
[domain/default]
ldap_tls_reqcert = never
auth_provider = ldap
ldap_id_use_start_tls = False
chpass_provider = ldap
krb5_realm = EXAMPLE.COM
cache_credentials = True
debug_timestamps = True
ldap_default_authtok_type = password
ldap_search_base = dc=domain,dc=com,dc=br
debug_level = 3
id_provider = ldap
ldap_default_bind_dn = cn=Manager,dc=domain,dc=com,dc=br
min_id = 100
ldap_uri = ldap://<FQDN of LDAP Server>/
krb5_server = kerberos.example.com
ldap_default_authtok = xxxxxxxxxx
ldap_tls_cacertdir = /etc/openldap/cacerts
答案2
您可以使用以下命令配置 SSSD:
authconfig --enablesssd \
--enablesssdauth \
--enablelocauthorize \
--enableldap \
--enableldapauth \
--ldapserver=ldap://ipaserver.example.com:389 \
--disableldaptls \
--ldapbasedn=dc=example,dc=com \
--enablerfc2307bis \
--enablemkhomedir \
--enablecachecreds \
--update
将 ldapserver 的名称替换为您的 ldap 服务器名称,并将 basedn 替换为您的基本 dn 名称。
此后在/etc/sssd/sssd.conf
文件中
ldap_default_bind_dn
分别指定ldap_default_authtok
作为默认绑定 dn 和密码,这取决于您的 ldap 设置。