安装基础必要包
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
# Ubuntu
sudo apt install realmd sssd-ldap ldap-utils libpam-mkhomedir
# CentOS
yum install realmd sssd nss-pam-ldapd openldap-clients -y
authconfig --enableldap \
--enableldapauth \
--ldapserver=192.168.0.62 \
--ldapbasedn="dc=xueshandai,dc=com" \
--enablemkhomedir \
--update
# 加入域 如果是Windows AD再需要这一步,OpenLDAP不需要
realm join -v xueshandai.com -U administrator
|
修改/etc/nsswitch.conf
确保有sss
在ubuntu
发行版较早的版本中,可能会出现安装上面的失败,但实际上是包安装好了,只是没入写入默认的配置
1
2
|
passwd: compat sss systemd
group: compat sss ssystemd
|
避坑
此时需要重启sssd
服务时,会提示启动不起来。那时因为加入域之后,它原来的文件有问题。所以需要手动删除。
1
2
|
cd /etc/sssd/conf.d/
mkdir bak && mv * bak
|
如果发现没有/etc/sssd/sssd.conf
,则创建一个sssd.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
[sssd]
domains = example.com
services = nss, pam
config_file_version = 2
certificate_verification = no_ocsp
[nss]
filter_groups = root
filter_users = root
[pam]
[domain/example.com]
id_provider = ldap
auth_provider = ldap
ldap_uri = ldap://ldap.example.com:389
ldap_search_base = dc=example,dc=com
cache_credentials = true
ldap_tls_reqcert = never
# 限制LDAP中的uidNumber数值范围,注意与LDAP中的条目的范围一致。
min_id = 1000
max_id = 20000
enumerate = False
|
有一个天坑,很多文章都没有提到,也许是sssd
版本问题。默认当使用LDAP
中的用户登陆时,sssd
是会强制使用TLS
的。这样LDAP
中没有配置TLS
,则当登陆LDAP
中的用户登陆时,sssd
会报错,没有办法登陆。以上配置已填这个天坑。
改文件权限并重启sssd
1
|
chmod 600 /etc/sssd/sssd.conf && systemctl restart sssd
|
登陆后自动创建用户目录
只需要Ubuntu
执行,CentOS
已使用authconfig
执行
1
2
|
# Ubuntu
pam-auth-update --enable mkhomedir
|
如果失败,在/etc/pam.d/sshd
最上面增加
1
|
session required pam_mkhomedir.so skel=/etc/skel umask=0077
|
验证
1
2
|
id username
ssh username@127.0.0.1
|
另外,LDAP Admin
这款软件不错。Windows
下可以修改条目,导出/导入方便。你值得拥有!