使用 Synology Diskstation 运行的 LDAP 在 CentOS 上配置 sudo

使用 Synology Diskstation 运行的 LDAP 在 CentOS 上配置 sudo

我正在尝试设置 CentOS 8 工作站以针对 Synology DiskStation 运行的 LDAP 服务器进行身份验证。我已经能够成功配置 SSSD 以针对服务器对用户进行身份验证,从而允许我使用我的 LDAP 帐户登录。但是,我无法让它授予 sudo 权限。这是我的 /etc/sssd/sssd.conf 文件:

[domain/lab.university.edu] 
id_provider = ldap 
auth_provider = ldap 
chpass_provider = ldap 
sudo_provider = ldap 
ldap_uri = ldap://00.000.00.00 
ldap_search_base=dc=lab,dc=university,dc=edu 
ldap_sudo_search_base=dc=lab,dc=university,dc=edu 
ldap_group_search_base=dc=lab,dc=university,dc=edu 
ldap_schema = rfc2307bis 
ldap_auth_disable_tls_never_use_in_production = True 
cache_credentials = false 
use_fully_qualified_names = False 
debug_level = 0x3ff0 

[sssd] 
config_file_version = 2 
services = nss,pam,sudo 
domains = lab.university.edu 
debug_level = 0x3ff0 

[nss] 

[pam] 

[sudo] 

为了确保所有更改都已应用,我还运行了:

sudo authselect select sssd with-mkhomedir with-sudo && sudo systemctl restart sssd.service && sudo sss_cache -E

但是,我似乎仍然无法授予 LDAP 帐户 sudo 权限。我想知道这是否可能与 LDAP 用户 ID/组 ID 的编号与本地帐户不同有关。我不是设置 LDAP 的人,但设置 LDAP 的人解释说,这是使一切正常运行所必需的。当我输入时id ldap_user,我得到以下内容:

uid=1000002(ldap_user) gid=1000001(users) groups=1000001(users),1000003(sudo),1000000(Directory Operators),2097150(Directory Consumers),1000002(administrators),2097149(Directory Clients)

是否可能由于奇怪的 ID 号导致 sudo 组无法被识别为有效?

答案1

您需要将适当的 LDAP 模式添加到 synology ldap 服务器的模式数据库中。这些文件位于 Centos8 上的以下目录中:

/usr/share/doc/sudo

该目录中有三个文件:

schema.ActiveDirectory  schema.iPlanet  schema.OpenLDAP

您需要将其中一个文件复制到 Synology 上找到架构的目录中,只要 Synology 使用其中一个架构而不是专有架构即可

然后您需要将每个主机的 sudoers 文件转换为 ldif 并将其导入到目录服务器。为此,使用cvtsudoers在以前版本的 centos/redhat 上调用的实用程序称为 sudoers2ldif,它位于模式文件旁边。

还请注意,根据配置,synology 支持 RFC 2307 而不是 2307B,不确定这是否有区别。

相关内容