Uda*_*day 6 linux openldap sudo sssd
尝试使用Windows AD帐户登录Linux系统。使用 SSSD 配置成功。
使用 LDAP 作为身份和访问提供程序,使用 Kerberos 作为身份验证提供程序。
我在没有将 Linux 系统加入域的情况下完成了这一切。
现在我尝试将 LDAP 配置为 sudo 提供程序。但它并不成功。我无法提升广告用户的 sudo 权限。我什至尝试过使用 sudoers 文件,在那里我可以提升特定用户的权限,但不能提升广告组的权限。
这是 SSSD 配置 wrt sudo 配置
**sudo_provider = ldap
ldap_sudo_search_base = ou=groups,dc=ad,dc=example,dc=com
ldap_sudorule_object_class = sudoRole
ldap_sudorule_object_class = top
ldap_sudorule_command = ALL
ldap_sudorule_host = ALL
ldap_sudorule_user = %domain_group
ldap_sudorule_runasuser = ALL
ldap_sudorule_runas = ALL
ldap_sudorule_runasgroup = ALL
ldap_sudorule_option = !authenticate**
Run Code Online (Sandbox Code Playgroud)
我尝试在调试级别 7 启用日志记录,它提到无法加载本地规则。
问候,乌代。
我认为您误解了配置文件开关的目的 - 它们用于映射查询对象的 LDAP 值。这些指令默认为辅助对象类指定的值(架构位于 CentOS 上的 /usr/share/doc/sudo-*/schema.ActiveDirectory 中)。
您应该在 AD 中导入此架构,使用此对象类创建代表 sudo 角色的对象,并让 SSSD 查询它们。
下面是一个详尽的例子:
以下是从 LDAP 查询用户、组和 sudo 角色的示例 SSSD 配置。将 <> 包含的部分替换为适合您环境的值:
[domain/default]
id_provider = ldap
auth_provider = ldap
access_provider = ldap
chpass_provider = ldap
sudo_provider = ldap
ldap_uri = ldaps://<ldap-server-address>:636
ldap_tls_cacert = /etc/pki/tls/certs/ca-bundle.crt
ldap_tls_reqcert = demand
ldap_default_bind_dn = <proxy-user-dn>
ldap_default_authtok_type = obfuscated_password
ldap_default_authtok = <obfuscated password>
ldap_search_base = <search base for users>
ldap_schema = rfc2307bis
ldap_group_search_base = <search base for groups>
ldap_sudo_search_base = <search base for sudo rules>
cache_credentials = false
enumerate = false
[sssd]
services = nss, pam, ssh, sudo
config_file_version = 2
domains = default
[nss]
[pam]
[sudo]
[autofs]
[ssh]
Run Code Online (Sandbox Code Playgroud)
在您的 LDAP 目录中,创建一个ldap_sudo_search_base
如下所示的对象:
objectClass: Top
objectClass: sudoRole
sudoRunAsUser: ALL
sudoHost: yourhost.example.com
sudoUser: %wheel
sudoCommand: ALL
description: Allows members of wheel to become root
cn: wheel_group_sudo_role
Run Code Online (Sandbox Code Playgroud)
这允许轮组的所有成员成为主机 yourhost.example.com 上的 root。
sudo -U testuser -ll
在目标主机上以 root 身份运行应该会产生:
LDAP Role: wheel_group_sudo_role
RunAsUsers: ALL
RunAsGroups: ALL
Commands:
ALL
Run Code Online (Sandbox Code Playgroud)
编辑:
正如您所想到的,由于 SSSD 为用户提供了 Linux 机器,您可以将他们视为常规 Linux 用户,从而创建本地 sudo 规则:
/etc/sudoers.d/00-local-admin-rule
%ad-admin-group ALL: (ALL) ALL
Run Code Online (Sandbox Code Playgroud)
这允许调用 sudo 的成员ad-admin-group
成为 root。
当谈论 时*_search_base
,指的是某种形式的 LDAP 容器对象的 DN,例如 ou=users、o=corg、dc=example、dc=org 等组织单位或目录所具有的任何层次结构。在指定容器下创建所需类型的对象。
归档时间: |
|
查看次数: |
15357 次 |
最近记录: |