community.general.pamd 模块 – 管理 PAM 模块

注意

此模块是 community.general 集合 (版本 10.1.0) 的一部分。

如果您使用的是 ansible 包,则可能已安装此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用: ansible-galaxy collection install community.general

要在剧本中使用它,请指定: community.general.pamd

概要

  • 编辑 PAM 服务的类型、控制、模块路径和模块参数。

  • 为了修改 PAM 规则,类型、控制和 module_path 必须与现有规则匹配。有关详细信息,请参阅 man(5) pam.d。

参数

参数

注释

backup

布尔值

创建一个包含时间戳信息的备份文件,以便您可以找回原始文件,以防您意外地将其覆盖。

选项

  • false ← (默认)

  • true

control

字符串 / 必需

要修改的 PAM 规则的控制。

这可能是一个带有括号的复杂控制。如果是这种情况,请确保将“[带括号的控制]”放在引号中。

typecontrolmodule_path 选项都必须与要修改的规则匹配。

module_arguments

列表 / 元素=字符串

state=updated 时,module_arguments 将替换现有的 module_arguments。

state=args_absent 时,与 module_arguments 中列出的参数匹配的参数将被删除。

state=args_present 时,如果现有规则中缺少 module_arguments 中列出的任何参数,则会添加这些参数。

此外,如果模块参数采用由 = 表示的值,则该值将更改为 module_arguments 中指定的值。

module_path

字符串 / 必需

要修改的 PAM 规则的模块路径。

typecontrolmodule_path 选项都必须与要修改的规则匹配。

name

字符串 / 必需

名称通常指要更改的 PAM 服务文件,例如 system-auth。

new_control

字符串

要分配给新规则的新控制。

new_module_path

字符串

要分配给新规则的新模块路径。

new_type

字符串

要分配给新规则的新类型。

选项

  • "account"

  • "-account"

  • "auth"

  • "-auth"

  • "password"

  • "-password"

  • "session"

  • "-session"

path

path

这是 PAM 服务文件的路径。

默认值: "/etc/pam.d"

state

字符串

updated 的默认值将修改现有规则(如果类型、控制和 module_path 都与现有规则匹配)。

使用 before,新规则将插入到匹配类型、控制和 module_path 的规则之前。

类似地,使用 after,新规则将插入到匹配类型、控制和 module_path 的现有规则之后。

如果使用 beforeafter,则必须同时指定 new_typenew_controlnew_module_path

如果 state 为 args_absentargs_present,则将忽略 new_typenew_controlnew_module_path

State 为 absent 将删除规则。

选项

  • "absent"

  • "before"

  • "after"

  • "args_absent"

  • "args_present"

  • "updated" ← (默认)

类型

字符串 / 必需

正在修改的 PAM 规则的类型。

typecontrolmodule_path 选项都必须与要修改的规则匹配。

选项

  • "account"

  • "-account"

  • "auth"

  • "-auth"

  • "password"

  • "-password"

  • "session"

  • "-session"

属性

属性

支持

描述

check_mode

支持:完全支持

可以在 check_mode 下运行,并在不修改目标的情况下返回更改状态预测。

diff_mode

支持:不支持

在差异模式下,将返回有关已更改内容(或可能需要在 check_mode 下更改的内容)的详细信息。

备注

注意

  • 此模块不处理 authselect 配置文件。

示例

- name: Update pamd rule's control in /etc/pam.d/system-auth
  community.general.pamd:
    name: system-auth
    type: auth
    control: required
    module_path: pam_faillock.so
    new_control: sufficient

- name: Update pamd rule's complex control in /etc/pam.d/system-auth
  community.general.pamd:
    name: system-auth
    type: session
    control: '[success=1 default=ignore]'
    module_path: pam_succeed_if.so
    new_control: '[success=2 default=ignore]'

- name: Insert a new rule before an existing rule
  community.general.pamd:
    name: system-auth
    type: auth
    control: required
    module_path: pam_faillock.so
    new_type: auth
    new_control: sufficient
    new_module_path: pam_faillock.so
    state: before

- name: Insert a new rule pam_wheel.so with argument 'use_uid' after an \
        existing rule pam_rootok.so
  community.general.pamd:
    name: su
    type: auth
    control: sufficient
    module_path: pam_rootok.so
    new_type: auth
    new_control: required
    new_module_path: pam_wheel.so
    module_arguments: 'use_uid'
    state: after

- name: Remove module arguments from an existing rule
  community.general.pamd:
    name: system-auth
    type: auth
    control: required
    module_path: pam_faillock.so
    module_arguments: ''
    state: updated

- name: Replace all module arguments in an existing rule
  community.general.pamd:
    name: system-auth
    type: auth
    control: required
    module_path: pam_faillock.so
    module_arguments: 'preauth
        silent
        deny=3
        unlock_time=604800
        fail_interval=900'
    state: updated

- name: Remove specific arguments from a rule
  community.general.pamd:
    name: system-auth
    type: session
    control: '[success=1 default=ignore]'
    module_path: pam_succeed_if.so
    module_arguments: crond,quiet
    state: args_absent

- name: Ensure specific arguments are present in a rule
  community.general.pamd:
    name: system-auth
    type: session
    control: '[success=1 default=ignore]'
    module_path: pam_succeed_if.so
    module_arguments: crond,quiet
    state: args_present

- name: Ensure specific arguments are present in a rule (alternative)
  community.general.pamd:
    name: system-auth
    type: session
    control: '[success=1 default=ignore]'
    module_path: pam_succeed_if.so
    module_arguments:
    - crond
    - quiet
    state: args_present

- name: Module arguments requiring commas must be listed as a Yaml list
  community.general.pamd:
    name: special-module
    type: account
    control: required
    module_path: pam_access.so
    module_arguments:
    - listsep=,
    state: args_present

- name: Update specific argument value in a rule
  community.general.pamd:
    name: system-auth
    type: auth
    control: required
    module_path: pam_faillock.so
    module_arguments: 'fail_interval=300'
    state: args_present

- name: Add pam common-auth rule for duo
  community.general.pamd:
    name: common-auth
    new_type: auth
    new_control: '[success=1 default=ignore]'
    new_module_path: '/lib64/security/pam_duo.so'
    state: after
    type: auth
    module_path: pam_sss.so
    control: 'requisite'

返回值

常见的返回值已在 此处 记录,以下是此模块特有的字段

描述

backupdest

字符串

如果创建了备份文件,则为备份文件的名称。

返回值:成功

change_count

整数

更改的规则数量。

返回值:成功

示例:1

作者

  • Kenneth D. Evensen (@kevensen)