首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SSSD配置Sudo

使用SSSD配置Sudo
EN

Server Fault用户
提问于 2018-12-24 10:50:03
回答 1查看 12.2K关注 0票数 6

试图使用windows AD帐户登录到Linux系统。成功地使用SSSD配置。

使用LDAP作为标识&访问提供程序,使用Kerberos作为身份验证提供程序。

在没有将linux系统加入域的情况下,我已经完成了所有这些工作。

现在,我正在尝试将LDAP配置为sudo提供程序。但它并没有成功。我无法提高对广告用户的sudo权限。我甚至尝试过使用sudoers文件,在那里我可以提高特定用户的权限,但不能提高到广告组的权限。

以下是SSSD配置w.r.tsudo配置

代码语言:javascript
复制
**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**

我尝试在调试级别7启用日志记录,其中提到无法加载本地规则。

你好,乌迪。

EN

回答 1

Server Fault用户

发布于 2018-12-24 15:28:40

我认为您误解了配置文件开关的用途-它们用于映射被查询对象的LDAP值。指令默认为辅助对象类指定的值(模式位于/usr/share/doc/sudo-*/schema.ActiveDirectory中,位于CentOS上)。

您应该在AD中导入此模式,使用该对象类创建表示sudo角色的对象,并让SSSD查询它们。

下面是一个详尽的例子:

下面是从LDAP查询用户、组和sudo角色的SSSD配置示例。用适合您的环境的值替换<>封闭部件:

代码语言:javascript
复制
[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]

在LDAP目录中,在ldap_sudo_search_base下面创建一个对象,如下所示:

代码语言:javascript
复制
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

这允许组轮的所有成员成为主机yourhost.example.com上的根。

在目标主机上以根用户身份运行sudo -U testuser -ll应该会产生以下结果:

代码语言:javascript
复制
LDAP Role: wheel_group_sudo_role
    RunAsUsers: ALL
    RunAsGroups: ALL
    Commands:
        ALL

编辑:

正如您已经发现的,正如SSSD向Linux框提供用户一样,您可以将他们视为常规Linux用户,从而创建本地sudo规则:

/etc/sudoers.d/00-local-admin-rule

代码语言:javascript
复制
%ad-admin-group ALL: (ALL) ALL

这允许ad-admin-group的成员调用sudo成为根。

当谈到*_search_base时,某些形式的LDAP容器对象的DN是指,例如ou=users、o=corg、dc=example、dc=org之类的组织单元,或者您的目录特性的任何层次结构。在指定容器下面创建所需类型的对象。

票数 3
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/946500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档