使用 IdM API
通过 Python 脚本使用 IdM API
摘要
对红帽文档提供反馈 复制链接链接已复制到粘贴板!
我们感谢您对我们文档的反馈。让我们了解如何改进它。
通过 Jira 提交反馈(需要帐户)
- 登录到 Jira 网站。
- 在顶部导航栏中点 Create
- 在 Summary 字段中输入描述性标题。
- 在 Description 字段中输入您对改进的建议。包括文档相关部分的链接。
- 点对话框底部的 Create。
第 1 章 IdM API 简介 复制链接链接已复制到粘贴板!
您可以使用命令行和基于 Web 的界面访问红帽身份管理的服务。使用身份管理 API,您可以通过第三方应用程序和用 Python 编写的脚本来与身份管理服务进行交互。
身份管理 API 具有 JavaScript Object Notation Remote Procedure Call (JSON-RPC)接口。要对各种重要部分使用自动化,请通过 Python 访问身份管理 API。例如,您可以使用所有可用的命令从服务器检索元数据。
第 2 章 IdM API 的基础知识 复制链接链接已复制到粘贴板!
您可以使用 IdM API ,使用自定义脚本自动访问 IdM 环境。
2.1. 初始化 IdM API 复制链接链接已复制到粘贴板!
要使用 IdM API,首先在您的环境中初始化它。
先决条件
- IdM 服务器或 IdM 客户端软件包已安装。
- 一个有效的 Kerberos 票据已发布。
流程
要初始化 IdM API,请在脚本的开头包含以下代码:
from ipalib import api api.bootstrap(context="server") api.finalize()
from ipalib import api api.bootstrap(context="server") api.finalize()Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要与 LDAP 服务器建立连接,请在 API 初始化后在脚本中添加以下逻辑:
if api.env.in_server: api.Backend.ldap2.connect() else: api.Backend.rpcclient.connect()if api.env.in_server: api.Backend.ldap2.connect() else: api.Backend.rpcclient.connect()Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 如果您在 IdM 服务器上运行脚本,则此逻辑允许您的脚本直接连接到 LDAP 服务器。
- 如果您在 IdM 客户端上运行脚本,则脚本将使用远程过程调用(RPC)客户端。
2.2. 运行 IdM API 命令 复制链接链接已复制到粘贴板!
您可以在脚本中运行 IdM API 命令。要运行 IdM API 命令,请在脚本中使用 api.Command 结构。
先决条件
- IdM API 已初始化。如需更多信息,请参阅 初始化 IdM API。
流程
例如,要列出有关用户的信息,请在脚本中包含以下代码:
api.Command.user_show("user_name", no_members=True, all=True)api.Command.user_show("user_name", no_members=True, all=True)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在本例中,您还将参数和选项传给命令
user_show。
2.3. IdM API 命令输出结构 复制链接链接已复制到粘贴板!
每个 IdM API 命令的输出都有四个部分。这些部分包含有关命令执行的各种信息。
IdM API 输出结构
result- 这部分提供命令的结果。它包含有关命令操作的各种详细信息,如传递给命令的选项和参数。
values- 这部分表示命令的参数。
messages-
这部分显示在执行命令后
ipa工具提供的各种信息。 summary- 这部分显示操作的总结。
在本例中,您的脚本执行 add_user 命令:
api.Command.user_add("test", givenname="a", sn="b")
api.Command.user_add("test", givenname="a", sn="b")
该命令的输出结构如下:
2.4. 列出 IdM API 命令和参数 复制链接链接已复制到粘贴板!
您可以使用 command_show 和 param_show 来列出 IdM API 命令及其参数的信息。
先决条件
- IdM API 已初始化。如需更多信息,请参阅 初始化 IdM API。
流程
要显示
user_add命令的信息,请执行以下代码:api.Command.command_show("user_add")api.Command.command_show("user_add")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这个命令的结果如下:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要显示
user_add命令的givenname参数的信息,请执行以下代码:api.Command.param_show("user_add", name="givenname")api.Command.param_show("user_add", name="givenname")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这个命令的结果如下:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5. 使用批处理执行 IdM API 命令 复制链接链接已复制到粘贴板!
您可以使用 batch 命令,通过一个调用执行多个 IdM API 命令。以下示例演示了如何创建多个 IdM 用户。
先决条件
- IdM API 已初始化。如需更多信息,请参阅 初始化 IdM API。
流程
要在一个批处理中创建 100 个 IdM 用户,请在脚本中包含以下代码:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6. IdM API 上下文 复制链接链接已复制到粘贴板!
IdM API 上下文决定了 API 使用哪个插件。在 API 初始化期间指定上下文。有关如何使用 IdM API 上下文的示例,请参阅 初始化 IdM API。
IdM API 上下文
server- 插件集合,其验证传递给 IdM API 命令执行的参数和选项。
client- 插件集合,其验证转发给 IdM 服务器执行的参数和选项。
installer- 特定于安装过程的插件集合。
updates- 特定于更新过程的插件集合。
第 3 章 IdM API 和 IdM CLI 命令比较 复制链接链接已复制到粘贴板!
您可以在 Python 交互控制台中使用 IdM API 命令。IdM API 命令与 ipa 工具命令不同。
IdM CLI 和 IdM API 命令的区别
- 命令命名结构
-
ipaCLI 命令使用连字符,如user-add,但 IdM API 命令改为使用下划线,如user_add。 - 参数命名
-
IdM CLI 命令和 IdM API 命令的参数不同。例如,IdM CLI
user-add命令首先有一个参数first,但 IdM APIuser_add命令有一个参数givenname。 - 日期格式
IdM CLI 提供了以下日期格式:
-
%Y%m%d%H%M%SZ -
%Y-%m-%dT%H:%M:%SZ -
%Y-%m-%dT%H:%MZ -
%Y-%m-%dZ -
%Y-%m-%d %H:%M:%SZ %Y-%m-%d %H:%MZ另外,IdM API 可以使用 Python 内置类
datetime。
-
有用的 CLI 工具
-
console启动交互式 Python 控制台,您可以使用它来运行 IdM API 命令。 -
help命令显示主题和命令的描述,并包含各种示例。 -
show-mapping命令显示 CLI 参数名称和 LDAP 属性之间的映射。
第 4 章 IdM API 示例场景 复制链接链接已复制到粘贴板!
以下示例为您提供了使用 IdM API 命令的常见场景。
4.1. 使用 IdM API 命令管理用户 复制链接链接已复制到粘贴板!
以下示例显示了如何使用 IdM API 命令管理 IdM 用户的常见场景。
使用 IdM API 命令管理 IdM 用户的示例
- 创建 IdM 用户
在本例中,您可以使用用户名
exampleuser和支持的用户一次性密码(OTP)身份验证创建一个 IdM 用户。api.Command.user_add("exampleuser", givenname="Example", sn="User", ipauserauthtype="otp")api.Command.user_add("exampleuser", givenname="Example", sn="User", ipauserauthtype="otp")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 显示 IdM 用户信息
在本例中,您显示有关 IdM 用户
exampleuser的所有可用信息。api.Command.user_show("exampleuser", all=True)api.Command.user_show("exampleuser", all=True)Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 修改 IdM 用户
在本例中,您将更改 IdM 用户
exampleuser的电子邮件地址。api.Command.user_mod("exampleuser", mail="exampleuser@example.org")api.Command.user_mod("exampleuser", mail="exampleuser@example.org")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 搜索 IdM 用户
在本例中,您将搜索与 IdM 组
admins中exampleuser匹配的所有 IdM 用户。api.Command.user_find(criteria="exampleuser", in_group="admins")
api.Command.user_find(criteria="exampleuser", in_group="admins")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 删除 IdM 用户
在本例中,您将删除 IdM 用户
exampleuser。api.Command.user_del("exampleuser")api.Command.user_del("exampleuser")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要在以后恢复用户,请使用
preserve选项。如果使用这个选项,您可以使用user_undel命令恢复用户。- 为 IdM 用户添加和删除证书
您可以使用
user_add_cert和user_remove_cert命令为用户添加或删除Base64 编码的证书。在本例中,您为用户exampleuser添加了一个证书。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 启用和禁用 IdM 用户
您可以使用
user_enable和user_disable命令启用或禁用 IdM 用户。在本例中,您禁用了 IdM 用户exampleuser。api.Command.user_disable("exampleuser")api.Command.user_disable("exampleuser")Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2. 使用 IdM API 命令管理组 复制链接链接已复制到粘贴板!
以下示例显示了如何使用 IdM API 命令管理 IdM 组的常见场景。
使用 IdM API 命令管理 IdM 用户的示例
- 创建 IdM 组
在本例中,您可以创建一个具有指定组 ID 号 的 IdM 组
developers。api.Command.group_add("developers", gidnumber=500, description="Developers")api.Command.group_add("developers", gidnumber=500, description="Developers")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 将用户作为成员添加到 IdM 组
在本例中,您将
admin用户添加到developers组。api.Command.group_add_member("developers", user="admin")api.Command.group_add_member("developers", user="admin")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 将服务作为成员添加到 IdM 组
在本例中,您要将
HTTP/server.ipa.test服务添加到developers组。api.Command.group_add_member("developers", service="HTTP/server.ipa.test")api.Command.group_add_member("developers", service="HTTP/server.ipa.test")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 将组作为子组添加到 IdM 组
在本例中,您将另一个组
admins添加到developers组。api.Command.group_add_member("developers", group="admins")api.Command.group_add_member("developers", group="admins")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 添加 IdM 组管理者
在这个示例中,您将
bob用户添加为developers组的组管理者。api.Command.group_add_member_manager("developers", user="bob")api.Command.group_add_member_manager("developers", user="bob")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 查找 IdM 组
您可以使用各种参数搜索 IdM 组。在这个示例中,您查找到用户
bob管理的所有组。api.Command.group_find(membermanager_user="bob")
api.Command.group_find(membermanager_user="bob")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 显示 IdM 组信息
在本例中,您显示有关
developers组的组信息,而不显示成员列表。api.Command.group_show("developers", no_members=True)api.Command.group_show("developers", no_members=True)Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 修改 IdM 组
在本例中,您将非 POSIX 组
testgroup转换为 POSIX 组。api.Command.group_mod("testgroup", posix=True)api.Command.group_mod("testgroup", posix=True)Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 从 IdM 组中删除成员
在本例中,您从
developers组中删除admin用户。api.Command.group_remove_member("developers", user="admin")api.Command.group_remove_member("developers", user="admin")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 删除 IdM 组管理者
在这个示例中,您将用户
bob作为管理器者从developers组中删除。api.Command.group_remove_member_manager("developers", user="bob")api.Command.group_remove_member_manager("developers", user="bob")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 删除 IdM 组
在本例中,您删除
developers组。api.Command.group_del("developers")api.Command.group_del("developers")Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3. 使用 IdM API 命令管理访问控制 复制链接链接已复制到粘贴板!
以下示例显示了如何使用 IdM API 命令管理访问控制的常见场景。
使用 IdM API 命令管理访问控制的示例
- 添加创建用户的权限
在本例中,添加创建用户的权限。
api.Command.permission_add("Create users", ipapermright='add', type='user')api.Command.permission_add("Create users", ipapermright='add', type='user')Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 添加管理组成员资格的权限
在本例中,您添加将用户添加到组的权限。
api.Command.permission_add("Manage group membership", ipapermright='write', type='group', attrs="member")api.Command.permission_add("Manage group membership", ipapermright='write', type='group', attrs="member")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 为用户创建进程添加特权
在本例中,您添加了创建用户的特权,将它们添加到组,以并管理用户证书。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 使用特权添加角色
在本例中,您要使用上例中创建的特权添加角色。
api.Command.role_add("usermanager", description="Users manager") api.Command.role_add_privilege("usermanager", privilege="User creation")api.Command.role_add("usermanager", description="Users manager") api.Command.role_add_privilege("usermanager", privilege="User creation")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 向用户分配角色
在本例中,您将
usermanager角色分配给用户bob。api.Command.role_add_member("usermanager", user="bob")api.Command.role_add_member("usermanager", user="bob")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 向组分配角色
在本例中,您将
usermanager角色分配给managers组。api.Command.role_add_member("usermanager", group="managers")api.Command.role_add_member("usermanager", group="managers")Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4. 使用 IdM API 命令管理 sudo 规则 复制链接链接已复制到粘贴板!
以下示例显示了如何使用 IdM API 命令管理 sudo 规则的常见场景。
使用 IdM API 命令管理 sudo 规则的示例
- 创建 sudo 规则
在本例中,您可以创建一个保持时间更改命令的 sudo 规则。
api.Command.sudorule_add("timechange")api.Command.sudorule_add("timechange")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 创建 sudo 命令
在本例中,您创建
datesudo 命令。api.Command.sudocmd_add("/usr/bin/date")api.Command.sudocmd_add("/usr/bin/date")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 将 sudo 命令附加到 sudo 规则
在本例中,您要将
datesudo 命令附加到timechangesudo 规则。api.Command.sudorule_add_allow_command("timechange", sudocmd="/usr/bin/date")api.Command.sudorule_add_allow_command("timechange", sudocmd="/usr/bin/date")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 创建并附加 sudo 命令组
在本例中,您创建多个 sudo 命令,将它们添加到新创建的
timecmdssudo 命令组中,并将组附加到timechangesudo 规则。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 拒绝 sudo 命令
在本例中,您拒绝要作为 sudo 运行的
rm命令。api.Command.sudocmd_add("/usr/bin/rm") api.Command.sudorule_add_deny_command("timechange", sudocmd="/usr/bin/rm")api.Command.sudocmd_add("/usr/bin/rm") api.Command.sudorule_add_deny_command("timechange", sudocmd="/usr/bin/rm")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 将用户添加到 sudo 规则
在这个示例中,您将用户
bob添加到timechangesudo 规则中。api.Command.sudorule_add_user("timechange", user="bob")api.Command.sudorule_add_user("timechange", user="bob")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 使 sudo 规则仅对指定的主机可用
在本例中,您将
timechange规则限制为仅对client.ipa.test主机可用。api.Command.sudorule_add_host("timechange", host="client.ipa.test")api.Command.sudorule_add_host("timechange", host="client.ipa.test")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 将 sudo 规则设置为以不同用户身份运行
默认情况下,sudo 规则以
root用户身份运行。在本例中,您将timechangesudo 规则设置为以alice用户身份运行。api.Command.sudorule_add_runasuser("timechange", user="alice")api.Command.sudorule_add_runasuser("timechange", user="alice")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 将 sudo 规则设置为以组身份运行
在本例中,您将
timechangesudo 规则设置为以sysadmins组身份运行。api.Command.sudorule_add_runasgroup("timechange", group="sysadmins")api.Command.sudorule_add_runasgroup("timechange", group="sysadmins")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 为 sudo 规则设置 sudo 选项
在本例中,您为
timechangesudo 规则设置 sudo 选项。api.Command.sudorule_add_option("timechange", ipasudoopt="logfile='/var/log/timechange_log'")api.Command.sudorule_add_option("timechange", ipasudoopt="logfile='/var/log/timechange_log'")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 启用 sudo 规则
在本例中,您启用
timechangesudo 规则。api.Command.sudorule_enable("timechange")api.Command.sudorule_enable("timechange")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 禁用 sudo 规则
在本例中,您禁用
timechangesudo 规则。api.Command.sudorule_disable("timechange")api.Command.sudorule_disable("timechange")Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.5. 使用 IdM API 命令管理基于主机的访问控制 复制链接链接已复制到粘贴板!
以下示例显示了如何使用 IdM API 命令管理基于主机的访问控制(HBAC)的常见场景。
使用 IdM API 命令管理 HBAC 的示例
- 创建 HBAC 规则
在本例中,您创建一个将处理 SSH 服务访问的基本规则。
api.Command.hbacrule_add("sshd_rule")api.Command.hbacrule_add("sshd_rule")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 将用户添加到 HBAC 规则中
在本例中,您将用户
john添加到sshd_ruleHBAC 规则中。api.Command.hbacrule_add_user("sshd_rule", user="john")api.Command.hbacrule_add_user("sshd_rule", user="john")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 将组添加到 HBAC 规则中
在本例中,您将组
developers添加到sshd_ruleHBAC 规则中。api.Command.hbacrule_add_user("sshd_rule", group="developers")api.Command.hbacrule_add_user("sshd_rule", group="developers")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 从 HBAC 规则中删除用户
在本例中,您从
sshd_ruleHBAC 规则中删除用户john。api.Command.hbacrule_remove_user("sshd_rule", user="john")api.Command.hbacrule_remove_user("sshd_rule", user="john")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 注册新的目标 HBAC 服务
在将其附加到 HBAC 规则前,您必须注册一个目标服务。在本例中,您注册
chronyd服务。api.Command.hbacsvc_add("chronyd")api.Command.hbacsvc_add("chronyd")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 将注册的服务附加到 HBAC 规则中
在本例中,您将
sshd服务附加到sshd_ruleHBAC 规则中。默认情况下,该服务在 IPA 中注册,因此无需事先使用hbacsvc_add进行注册。api.Command.hbacrule_add_service("sshd_rule", hbacsvc="sshd")api.Command.hbacrule_add_service("sshd_rule", hbacsvc="sshd")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 将主机添加到 HBAC 规则中
在本例中,您要
workstations主机组添加到sshd_ruleHBAC 规则中。api.Command.hbacrule_add_host("sshd_rule", hostgroup="workstations")api.Command.hbacrule_add_host("sshd_rule", hostgroup="workstations")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 测试 HBAC 规则
在本例中,您对
workstation.ipa.test主机使用sshd_ruleHBAC 规则。它以来自用户john的服务sshd为目标。api.Command.hbactest(user="john", targethost="workstation.ipa.test", service="sshd", rules="sshd_rule")
api.Command.hbactest(user="john", targethost="workstation.ipa.test", service="sshd", rules="sshd_rule")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 启用 HBAC 规则
在本例中,您启用
sshd_ruleHBAC 规则。api.Command.hbacrule_enable("sshd_rule")api.Command.hbacrule_enable("sshd_rule")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 禁用 HBAC 规则
在本例中,您禁用
sshd_ruleHBAC 规则。api.Command.hbacrule_disable("sshd_rule")api.Command.hbacrule_disable("sshd_rule")Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第 5 章 审计 IdM API 操作 复制链接链接已复制到粘贴板!
身份管理(IdM)服务器使用 systemd 日志来创建所有 IdM API 操作的审计记录。要审核操作并对问题进行故障排除,您可以查询日志来查看谁在哪个服务器上执行操作。
5.1. IdM API 审计概述 复制链接链接已复制到粘贴板!
IdM 服务器在 systemd 日志中记录了任何使用身份管理(IdM) API。这提供了为审计 API 操作收集日志的统一方法。
systemd 日志允许从单个系统集中收集日志,然后可以查询和过滤日志。
每个日志条目都带有 IPA.API 标记,并以结构化格式包含以下详情:
-
经过身份验证的 Kerberos 主体,如果操作由
root用户直接通过 LDAPI 在服务器上执行,则为[autobind]。 - 执行的 API 命令的名称。
-
执行的结果是
SUCCESS或一个例外名称。 - LDAP 后端实例标识符,与同一请求的一部分执行的所有操作相同。
- 传递给命令的参数和选项列表,采用 JSON 格式。
您可以使用 journalctl 实用程序查询这些条目。使用带有 -x 选项的 journalctl 提供了更详细的、人类可读的日志条目说明,包括相关文档的链接。
所有 IdM API 审计条目都会将 MESSAGE_ID 属性设置为应用程序 UID 6d70f1b493df36478bc3499257cd3b17。
5.2. 查看 IdM API 审计日志 复制链接链接已复制到粘贴板!
您可以通过查询 systemd 日志来查看特定条目的 IdM API 审计日志和详情。此流程演示了如何使用 IdM API 识别和显示用户删除的日志。
先决条件
- 有到 IdM 服务器的 root 访问权限。
- IdM 服务器正在运行 RHEL 9.5 或更高版本。
流程
要查看日志中记录的所有 IdM API 操作列表,请过滤
IPA.API标记的日志:journalctl -g IPA.API May 23 10:30:15 idmserver.idm.example.com /usr/bin/ipa[247422]: [IPA.API] [autobind]: user_del: SUCCESS [ldap2_140328582446688] {"uid": ["example_user"], "continue": false, "version": "2.253"} May 23 10:32:01 idmserver.idm.example.com /usr/bin/ipa[247555]: [IPA.API] admin@IDM.EXAMPLE.COM: user_add: SUCCESS [ldap2_140328582446999] {"uid": ["new_user"], "givenname": "New", "sn": "User", "cn": "New User"} May 23 10:33:10 idmserver.idm.example.com /mod_wsgi[247035]: [IPA.API] admin@IDM.EXAMPLE.COM: ping: SUCCESS [ldap2_139910420944784] {"version": "2.253"} May 23 10:34:05 idmserver.idm.example.com /usr/bin/ipa[247888]: [IPA.API] [autobind]: group_add_member: SUCCESS [ldap2_140328582447111] {"cn": "admins", "user": "new_user"}# journalctl -g IPA.API May 23 10:30:15 idmserver.idm.example.com /usr/bin/ipa[247422]: [IPA.API] [autobind]: user_del: SUCCESS [ldap2_140328582446688] {"uid": ["example_user"], "continue": false, "version": "2.253"} May 23 10:32:01 idmserver.idm.example.com /usr/bin/ipa[247555]: [IPA.API] admin@IDM.EXAMPLE.COM: user_add: SUCCESS [ldap2_140328582446999] {"uid": ["new_user"], "givenname": "New", "sn": "User", "cn": "New User"} May 23 10:33:10 idmserver.idm.example.com /mod_wsgi[247035]: [IPA.API] admin@IDM.EXAMPLE.COM: ping: SUCCESS [ldap2_139910420944784] {"version": "2.253"} May 23 10:34:05 idmserver.idm.example.com /usr/bin/ipa[247888]: [IPA.API] [autobind]: group_add_member: SUCCESS [ldap2_140328582447111] {"cn": "admins", "user": "new_user"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出显示每个 API 调用的摘要,包括用户、命令、结果、唯一连接 ID 和使用的参数。
-
识别您要检查的特定条目的唯一标识符。例如,
user_del调用具有 LDAP 后端实例标识符ldap2_140328582446688。 使用
journalctl和 the-x选项和唯一标识符值,以获得用户删除日志条目的详细说明:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其他资源
-
您系统上的
journalctl (1)手册页