带有 AD 的 SSSD:使用域服务器上指定的 UID/GID 而不是随机的?

带有 AD 的 SSSD:使用域服务器上指定的 UID/GID 而不是随机的?

我有一个带有 IDMU 的 AD 环境,并指定给我的域用户。SSSD 连接的域用户在 Ubuntu 上与 ADUID/GID不共享。UID/GID

sssd.conf这是Ubuntu 20.10 中未编辑的默认版本:

% sssd --version
2.3.1

# cat /etc/sssd/sssd.conf 

[sssd]
domains = webtool.space
config_file_version = 2

[domain/webtool.space]
default_shell = /bin/bash
krb5_store_password_if_offline = True
cache_credentials = True
krb5_realm = MYDOMAIN.SPACE
realmd_tags = manages-system joined-with-adcli 
id_provider = ad
fallback_homedir = /home/%u@%d
ad_domain = mydomain.space
use_fully_qualified_names = True
ldap_id_mapping = True
access_provider = ad

如果用户名中AuserUID10001,我希望这些数字能够在其他平台上保持不变,对吗?GID10001

但 SSSD 似乎分配任意,UID/GID与 AD 号码没有对应关系。这是一个真实的例子:

% su [email protected]                                        
Password: 
[email protected]@myhostname:~/$ id

uid=397401108([email protected])
gid=397400512(domain [email protected])
groups=397400512(domain [email protected]),
397400513(domain [email protected]),
397400518(schema [email protected]),
397400519(enterprise [email protected]),
397400572(denied rodc password replication [email protected]),
397401109([email protected]),
397401112(vcsa [email protected]),
397404603([email protected]),
397407607([email protected])

有什么方法可以防止这种行为?我希望我的UID/GID值与域控制器上分配的值相对应。

更新:

感谢出色的第一个回答,要进行 1-1 映射,只需停止 SSSD 服务、删除缓存、ldap_id_mapping从更改TrueFalse

现在UID/GID与 AD 相同:

% id
uid=10000(auser) gid=10001(administrators) groups=10001(administrators),3109([email protected]),10000(domain [email protected])

现在要弄清楚为什么我缺少我的用户所属的一些组......

答案1

默认的 SSD 行为会将用户 ID 和组 ID 映射到一个值范围。如果在 AD 中定义了 LDAP 属性,您可以指定要使用的属性。

来自手册页 -http://manpages.ubuntu.com/manpages/bionic/en/man5/sssd-ad.5.html

       By default, the AD provider will map UID and GID values from the objectSID parameter in
       Active Directory. For details on this, see the “ID MAPPING” section below. If you want to
       disable ID mapping and instead rely on POSIX attributes defined in Active Directory, you
       should set

           ldap_id_mapping = False

SSSD 配置取决于 AD 中使用的属性。UID 和 GID 的默认值为uidNumbergidNumber,但某些默认值会根据您运行的 SSSD 版本而变化。请查看您所使用的版本的手册页。

如果你更改了 ID 映射设置,则需要在测试更改之前完全清除缓存。我喜欢运行这些命令

systemctl stop sssd
rm /var/lib/sss/{db,mc}/*
sss_cache -E
# optionally clear debug logs
truncate -s 0 /var/log/sssd/*.log
systemctl start sssd

相关内容