我正在尝试设置 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,不确定这是否有区别。