{{%- if product in ["almalinux9", "debian12", "debian13", "fedora", "ol7", "ol8", "ol9", "ol10", "rhel8", "rhel9", "rhel10", "sle12", "sle15", "sle16", "slmicro5", "slmicro6", "ubuntu2204", "ubuntu2404"] %}}
  {{%- set perm_x=" -F perm=x" %}}
{{%- endif %}}
# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_rhv,multi_platform_sle,multi_platform_slmicro,multi_platform_ubuntu,multi_platform_almalinux
# reboot = false
# strategy = restrict
# complexity = low
# disruption = low

{{% if product in ["fedora", "rhel10"] %}}
- name: {{{ rule_title }}} - Set architecture for audit {{{ PATH }}}
  ansible.builtin.set_fact:
    audit_arch: "b64"
  when:
  - ansible_architecture == "aarch64" or
    ansible_architecture == "ppc64" or
    ansible_architecture == "ppc64le" or
    ansible_architecture == "s390x" or
    ansible_architecture == "x86_64"

- name: {{{ rule_title }}} - Perform remediation of Audit rules for {{{ PATH }}} 32 bit
  block:
    {{{ ansible_audit_augenrules_add_syscall_rule(
      action_arch_filters="-a always,exit -F arch=b32",
      other_filters="-F path="~PATH~perm_x,
      auid_filters="-F auid>="~auid~" -F auid!=unset",
      syscalls=SYSCALL,
      key="privileged",
      syscall_grouping=SYSCALL_GROUPING,
      )|indent(4) }}}
    {{{ ansible_audit_auditctl_add_syscall_rule(
      action_arch_filters="-a always,exit -F arch=b32",
      other_filters="-F path="~PATH~perm_x,
      auid_filters="-F auid>="~auid~" -F auid!=unset",
      syscalls=SYSCALL,
      key="privileged",
      syscall_grouping=SYSCALL_GROUPING,
      )|indent(4) }}}
- name: {{{ rule_title }}} - Perform remediation of Audit rules for {{{ PATH }}} 64 bit
  block:
    {{{ ansible_audit_augenrules_add_syscall_rule(
      action_arch_filters="-a always,exit -F arch=b64",
      other_filters="-F path="~PATH~perm_x,
      auid_filters="-F auid>="~auid~" -F auid!=unset",
      syscalls=SYSCALL,
      key="privileged",
      syscall_grouping=SYSCALL_GROUPING,
      )|indent(4) }}}
    {{{ ansible_audit_auditctl_add_syscall_rule(
      action_arch_filters="-a always,exit -F arch=b64",
      other_filters="-F path="~PATH~perm_x,
      auid_filters="-F auid>="~auid~" -F auid!=unset",
      syscalls=SYSCALL,
      key="privileged",
      syscall_grouping=SYSCALL_GROUPING,
      )|indent(4) }}}
  when: audit_arch == "b64"
{{% else %}}
- name: {{{ rule_title }}} - Perform remediation of Audit rules for {{{ PATH }}}
  block:
    {{{ ansible_audit_augenrules_add_syscall_rule(
      action_arch_filters="-a always,exit",
      other_filters="-F path="~PATH~perm_x,
      auid_filters="-F auid>="~auid~" -F auid!=unset",
      syscalls=SYSCALL,
      key="privileged",
      syscall_grouping=SYSCALL_GROUPING,
      )|indent(4) }}}
    {{{ ansible_audit_auditctl_add_syscall_rule(
      action_arch_filters="-a always,exit",
      other_filters="-F path="~PATH~perm_x,
      auid_filters="-F auid>="~auid~" -F auid!=unset",
      syscalls=SYSCALL,
      key="privileged",
      syscall_grouping=SYSCALL_GROUPING,
      )|indent(4) }}}
{{% endif %}}
