Blame SOURCES/scap-security-guide-0.1.67-rsyslog_files_permissions_template-PR_10139.patch

7e8648
From b09bf3ad8acd82003f068f0d8f60a44f04092656 Mon Sep 17 00:00:00 2001
7e8648
From: Watson Sato <wsato@redhat.com>
7e8648
Date: Tue, 7 Feb 2023 10:53:17 +0100
7e8648
Subject: [PATCH 3/5] Extends rsyslog_logfiles_attributes_modify template for
7e8648
 permissions
7e8648
7e8648
Patch-name: scap-security-guide-0.1.67-rsyslog_files_permissions_template-PR_10139.patch
7e8648
Patch-status: Extends rsyslog_logfiles_attributes_modify template for permissions
7e8648
---
7e8648
 .../ansible/shared.yml                        |  59 --------
7e8648
 .../rsyslog_files_permissions/bash/shared.sh  |  92 ------------
7e8648
 .../rsyslog_files_permissions/oval/shared.xml | 131 -----------------
7e8648
 .../rsyslog_files_permissions/rule.yml        |  30 +++-
7e8648
 .../IncludeConfig_glob_perms_0600.pass.sh     |  40 -----
7e8648
 .../IncludeConfig_glob_perms_0601.fail.sh     |  41 ------
7e8648
 .../tests/IncludeConfig_perms_0600.pass.sh    |  39 -----
7e8648
 .../tests/IncludeConfig_perms_0601.fail.sh    |  40 -----
7e8648
 .../include_config_syntax_perms_0600.pass.sh  |  85 -----------
7e8648
 .../include_config_syntax_perms_0601.fail.sh  |  86 -----------
7e8648
 .../include_multiline_perms_0600.pass.sh      |  41 ------
7e8648
 .../tests/include_perms_0600.pass.sh          |  39 -----
7e8648
 ...erms_0600_IncludeConfig_perms_0600.pass.sh |  52 -------
7e8648
 ...erms_0600_IncludeConfig_perms_0601.fail.sh |  53 -------
7e8648
 ...00_IncludeConfig_perms_0601_hidden.pass.sh |  53 -------
7e8648
 ...0_IncludeConfig_perms_0601_missing.pass.sh |  45 ------
7e8648
 .../include_perms_0600_cloudinit.pass.sh      |  23 ---
7e8648
 .../tests/include_perms_0601.fail.sh          |  41 ------
7e8648
 .../include_perms_0601_cloudinit.fail.sh      |  22 ---
7e8648
 .../mixed_correct_attr_group_read.pass.sh     |  25 ++++
7e8648
 .../tests/mixed_correct_attr_stricter.pass.sh |  25 ++++
7e8648
 .../tests/perms_0600.pass.sh                  |  35 -----
7e8648
 .../tests/perms_0601.fail.sh                  |  34 -----
7e8648
 .../ansible.template                          |   7 +-
7e8648
 .../bash.template                             |  33 ++---
7e8648
 .../oval.template                             | 138 +++++++++---------
7e8648
 .../template.py                               |  18 +++
7e8648
 .../tests/IncludeConfig_is_other.fail.sh      |  50 -------
7e8648
 .../tests/include_is_other.fail.sh            |  50 -------
7e8648
 ...udeConfig_is_other_RainerLogClause.fail.sh |  75 ----------
7e8648
 .../tests/include_is_root.pass.sh             |  46 ------
7e8648
 ...ude_is_root_IncludeConfig_is_other.fail.sh |  63 --------
7e8648
 ...lude_is_root_IncludeConfig_is_root.pass.sh |  58 --------
7e8648
 ...ludeConfig_is_root_RainerLogClause.pass.sh |  59 --------
7e8648
 .../tests/include_multiline_is_root.pass.sh   |  47 ------
7e8648
 .../tests/is_root.pass.sh                     |  30 ----
7e8648
 ...er.fail.sh => legacy_correct_attr.pass.sh} |  26 ++--
7e8648
 ...sh => legacy_include_correct_attr.pass.sh} |  32 ++--
7e8648
 .../legacy_include_incorrect_attr.fail.sh     |  50 +++++++
7e8648
 .../tests/legacy_incorrect_attr.fail.sh       |  33 +++++
7e8648
 .../tests/mixed_correct_attr.pass.sh          |  33 +++++
7e8648
 .../tests/mixed_include_correct_attr.pass.sh  |  58 ++++++++
7e8648
 ...ixed_include_incorrect_attr_legacy.fail.sh |  63 ++++++++
7e8648
 ...ixed_include_incorrect_attr_rainer.fail.sh |  63 ++++++++
7e8648
 .../mixed_incorrect_attr_cloudinit.fail.sh    |  38 +++++
7e8648
 .../tests/mixed_incorrect_attr_legacy.fail.sh |  38 +++++
7e8648
 .../tests/mixed_incorrect_attr_rainer.fail.sh |  38 +++++
7e8648
 .../tests/rainer_correct_attr.pass.sh         |  31 ++++
7e8648
 .../tests/rainer_include_correct_attr.pass.sh |  45 ++++++
7e8648
 .../rainer_include_incorrect_attr.fail.sh     |  50 +++++++
7e8648
 ...ner_include_multiline_correct_attr.pass.sh |  47 ++++++
7e8648
 ...r_include_multiline_incorrect_attr.fail.sh |  52 +++++++
7e8648
 .../tests/rainer_incorrect_attr.fail.sh       |  33 +++++
7e8648
 53 files changed, 875 insertions(+), 1660 deletions(-)
7e8648
 delete mode 100644 linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/ansible/shared.yml
7e8648
 delete mode 100644 linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/bash/shared.sh
7e8648
 delete mode 100644 linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/oval/shared.xml
7e8648
 delete mode 100755 linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/IncludeConfig_glob_perms_0600.pass.sh
7e8648
 delete mode 100755 linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/IncludeConfig_glob_perms_0601.fail.sh
7e8648
 delete mode 100755 linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/IncludeConfig_perms_0600.pass.sh
7e8648
 delete mode 100755 linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/IncludeConfig_perms_0601.fail.sh
7e8648
 delete mode 100755 linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_config_syntax_perms_0600.pass.sh
7e8648
 delete mode 100755 linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_config_syntax_perms_0601.fail.sh
7e8648
 delete mode 100755 linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_multiline_perms_0600.pass.sh
7e8648
 delete mode 100755 linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_perms_0600.pass.sh
7e8648
 delete mode 100755 linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_perms_0600_IncludeConfig_perms_0600.pass.sh
7e8648
 delete mode 100755 linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_perms_0600_IncludeConfig_perms_0601.fail.sh
7e8648
 delete mode 100644 linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_perms_0600_IncludeConfig_perms_0601_hidden.pass.sh
7e8648
 delete mode 100644 linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_perms_0600_IncludeConfig_perms_0601_missing.pass.sh
7e8648
 delete mode 100644 linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_perms_0600_cloudinit.pass.sh
7e8648
 delete mode 100755 linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_perms_0601.fail.sh
7e8648
 delete mode 100644 linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_perms_0601_cloudinit.fail.sh
7e8648
 create mode 100755 linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/mixed_correct_attr_group_read.pass.sh
7e8648
 create mode 100755 linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/mixed_correct_attr_stricter.pass.sh
7e8648
 delete mode 100755 linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/perms_0600.pass.sh
7e8648
 delete mode 100755 linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/perms_0601.fail.sh
7e8648
 create mode 100644 shared/templates/rsyslog_logfiles_attributes_modify/template.py
7e8648
 delete mode 100755 shared/templates/rsyslog_logfiles_attributes_modify/tests/IncludeConfig_is_other.fail.sh
7e8648
 delete mode 100755 shared/templates/rsyslog_logfiles_attributes_modify/tests/include_is_other.fail.sh
7e8648
 delete mode 100644 shared/templates/rsyslog_logfiles_attributes_modify/tests/include_is_other_IncludeConfig_is_other_RainerLogClause.fail.sh
7e8648
 delete mode 100755 shared/templates/rsyslog_logfiles_attributes_modify/tests/include_is_root.pass.sh
7e8648
 delete mode 100755 shared/templates/rsyslog_logfiles_attributes_modify/tests/include_is_root_IncludeConfig_is_other.fail.sh
7e8648
 delete mode 100755 shared/templates/rsyslog_logfiles_attributes_modify/tests/include_is_root_IncludeConfig_is_root.pass.sh
7e8648
 delete mode 100755 shared/templates/rsyslog_logfiles_attributes_modify/tests/include_is_root_IncludeConfig_is_root_RainerLogClause.pass.sh
7e8648
 delete mode 100755 shared/templates/rsyslog_logfiles_attributes_modify/tests/include_multiline_is_root.pass.sh
7e8648
 delete mode 100755 shared/templates/rsyslog_logfiles_attributes_modify/tests/is_root.pass.sh
7e8648
 rename shared/templates/rsyslog_logfiles_attributes_modify/tests/{is_other.fail.sh => legacy_correct_attr.pass.sh} (53%)
7e8648
 rename shared/templates/rsyslog_logfiles_attributes_modify/tests/{IncludeConfig_is_root.pass.sh => legacy_include_correct_attr.pass.sh} (51%)
7e8648
 create mode 100755 shared/templates/rsyslog_logfiles_attributes_modify/tests/legacy_include_incorrect_attr.fail.sh
7e8648
 create mode 100755 shared/templates/rsyslog_logfiles_attributes_modify/tests/legacy_incorrect_attr.fail.sh
7e8648
 create mode 100755 shared/templates/rsyslog_logfiles_attributes_modify/tests/mixed_correct_attr.pass.sh
7e8648
 create mode 100755 shared/templates/rsyslog_logfiles_attributes_modify/tests/mixed_include_correct_attr.pass.sh
7e8648
 create mode 100755 shared/templates/rsyslog_logfiles_attributes_modify/tests/mixed_include_incorrect_attr_legacy.fail.sh
7e8648
 create mode 100755 shared/templates/rsyslog_logfiles_attributes_modify/tests/mixed_include_incorrect_attr_rainer.fail.sh
7e8648
 create mode 100755 shared/templates/rsyslog_logfiles_attributes_modify/tests/mixed_incorrect_attr_cloudinit.fail.sh
7e8648
 create mode 100755 shared/templates/rsyslog_logfiles_attributes_modify/tests/mixed_incorrect_attr_legacy.fail.sh
7e8648
 create mode 100755 shared/templates/rsyslog_logfiles_attributes_modify/tests/mixed_incorrect_attr_rainer.fail.sh
7e8648
 create mode 100755 shared/templates/rsyslog_logfiles_attributes_modify/tests/rainer_correct_attr.pass.sh
7e8648
 create mode 100755 shared/templates/rsyslog_logfiles_attributes_modify/tests/rainer_include_correct_attr.pass.sh
7e8648
 create mode 100755 shared/templates/rsyslog_logfiles_attributes_modify/tests/rainer_include_incorrect_attr.fail.sh
7e8648
 create mode 100755 shared/templates/rsyslog_logfiles_attributes_modify/tests/rainer_include_multiline_correct_attr.pass.sh
7e8648
 create mode 100755 shared/templates/rsyslog_logfiles_attributes_modify/tests/rainer_include_multiline_incorrect_attr.fail.sh
7e8648
 create mode 100755 shared/templates/rsyslog_logfiles_attributes_modify/tests/rainer_incorrect_attr.fail.sh
7e8648
7e8648
diff --git a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/ansible/shared.yml b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/ansible/shared.yml
7e8648
deleted file mode 100644
7e8648
index ae8bbe3302..0000000000
7e8648
--- a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/ansible/shared.yml
7e8648
+++ /dev/null
7e8648
@@ -1,59 +0,0 @@
7e8648
-# platform = Red Hat Virtualization 4,multi_platform_fedora,multi_platform_ol,multi_platform_rhel,multi_platform_sle
7e8648
-# reboot = false
7e8648
-# strategy = configure
7e8648
-# complexity = low
7e8648
-# disruption = medium
7e8648
-
7e8648
-- name: "Set rsyslog logfile configuration facts"
7e8648
-  set_fact:
7e8648
-    rsyslog_etc_config: "/etc/rsyslog.conf"
7e8648
-{{% if product in ["debian10", "debian11", "ubuntu1604", "ubuntu1804", "ubuntu2004", "ubuntu2204", "sle15", "sle12"] %}}
7e8648
-    desired_perm_mode: "640"
7e8648
-{{% else %}}
7e8648
-    desired_perm_mode: "600"
7e8648
-{{% endif %}}
7e8648
-
7e8648
-# * And also the log file paths listed after rsyslog's $IncludeConfig directive
7e8648
-#   (store the result into array for the case there's shell glob used as value of IncludeConfig)
7e8648
-- name: "Get IncludeConfig directive"
7e8648
-  shell: |
7e8648
-    set -o pipefail
7e8648
-    grep -e '$IncludeConfig' {{ rsyslog_etc_config }} | cut -d ' ' -f 2 || true
7e8648
-  register: rsyslog_old_inc
7e8648
-  changed_when: False
7e8648
-
7e8648
-- name: "Get include files directives"
7e8648
-  shell: |
7e8648
-    set -o pipefail
7e8648
-    grep -oP '^\s*include\s*\(\s*file.*' {{ rsyslog_etc_config }} |cut  -d"\"" -f 2 || true
7e8648
-  register: rsyslog_new_inc
7e8648
-  changed_when: False
7e8648
-
7e8648
-- name: "Expand glob expressions"
7e8648
-  shell: |
7e8648
-    set -o pipefail
7e8648
-    eval printf '%s\\n' {{ item }}
7e8648
-  register: include_config_output
7e8648
-  loop: "{{ rsyslog_old_inc.stdout_lines + rsyslog_new_inc.stdout_lines }}"
7e8648
-
7e8648
-- name: "List all config files"
7e8648
-  shell: find {{ item }} -not -path "*/.*" -type f
7e8648
-  loop: "{{ include_config_output.results|map(attribute='stdout_lines')|list|flatten }}"
7e8648
-  register: rsyslog_config_files
7e8648
-  failed_when: False
7e8648
-  changed_when: False
7e8648
-
7e8648
-- name: "Extract log files"
7e8648
-  shell: |
7e8648
-    set -o pipefail
7e8648
-    grep -oP '^[^(\s|#|\$)]+[\s]+.*[\s]+-?(/+[^:;\s]+);*\.*$' {{ item }}  |awk '{print $NF}'|sed -e 's/^-//' || true
7e8648
-  loop: "{{ rsyslog_config_files.results|map(attribute='stdout_lines')|list|flatten|unique + [ rsyslog_etc_config ] }}"
7e8648
-  register: log_files
7e8648
-  changed_when: False
7e8648
-
7e8648
-- name: "Setup log files permissions"
7e8648
-  ignore_errors: yes
7e8648
-  file:
7e8648
-    path: "{{ item }}"
7e8648
-    mode: "{{ desired_perm_mode }}"
7e8648
-  loop: "{{ log_files.results|map(attribute='stdout_lines')|list|flatten|unique }}"
7e8648
diff --git a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/bash/shared.sh b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/bash/shared.sh
7e8648
deleted file mode 100644
7e8648
index e4e2ade29e..0000000000
7e8648
--- a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/bash/shared.sh
7e8648
+++ /dev/null
7e8648
@@ -1,92 +0,0 @@
7e8648
-# platform = Red Hat Virtualization 4,multi_platform_fedora,multi_platform_ol,multi_platform_rhel,multi_platform_sle
7e8648
-
7e8648
-# List of log file paths to be inspected for correct permissions
7e8648
-# * Primarily inspect log file paths listed in /etc/rsyslog.conf
7e8648
-RSYSLOG_ETC_CONFIG="/etc/rsyslog.conf"
7e8648
-# * And also the log file paths listed after rsyslog's $IncludeConfig directive
7e8648
-#   (store the result into array for the case there's shell glob used as value of IncludeConfig)
7e8648
-readarray -t OLD_INC < <(grep -e "\$IncludeConfig[[:space:]]\+[^[:space:];]\+" /etc/rsyslog.conf | cut -d ' ' -f 2)
7e8648
-readarray -t RSYSLOG_INCLUDE_CONFIG < <(for INCPATH in "${OLD_INC[@]}"; do eval printf '%s\\n' "${INCPATH}"; done)
7e8648
-readarray -t NEW_INC < <(awk '/)/{f=0} /include\(/{f=1} f{nf=gensub("^(include\\(|\\s*)file=\"(\\S+)\".*","\\2",1); if($0!=nf){print nf}}' /etc/rsyslog.conf)
7e8648
-readarray -t RSYSLOG_INCLUDE < <(for INCPATH in "${NEW_INC[@]}"; do eval printf '%s\\n' "${INCPATH}"; done)
7e8648
-
7e8648
-# Declare an array to hold the final list of different log file paths
7e8648
-declare -a LOG_FILE_PATHS
7e8648
-
7e8648
-# Array to hold all rsyslog config entries
7e8648
-RSYSLOG_CONFIGS=()
7e8648
-RSYSLOG_CONFIGS=("${RSYSLOG_ETC_CONFIG}" "${RSYSLOG_INCLUDE_CONFIG[@]}" "${RSYSLOG_INCLUDE[@]}")
7e8648
-
7e8648
-# Get full list of files to be checked
7e8648
-# RSYSLOG_CONFIGS may contain globs such as
7e8648
-# /etc/rsyslog.d/*.conf /etc/rsyslog.d/*.frule
7e8648
-# So, loop over the entries in RSYSLOG_CONFIGS and use find to get the list of included files.
7e8648
-RSYSLOG_CONFIG_FILES=()
7e8648
-for ENTRY in "${RSYSLOG_CONFIGS[@]}"
7e8648
-do
7e8648
-	# If directory, rsyslog will search for config files in recursively.
7e8648
-	# However, files in hidden sub-directories or hidden files will be ignored.
7e8648
-	if [ -d "${ENTRY}" ]
7e8648
-	then
7e8648
-		readarray -t FINDOUT < <(find "${ENTRY}" -not -path '*/.*' -type f)
7e8648
-		RSYSLOG_CONFIG_FILES+=("${FINDOUT[@]}")
7e8648
-	elif [ -f "${ENTRY}" ]
7e8648
-	then
7e8648
-		RSYSLOG_CONFIG_FILES+=("${ENTRY}")
7e8648
-	else
7e8648
-		echo "Invalid include object: ${ENTRY}"
7e8648
-	fi
7e8648
-done
7e8648
-
7e8648
-# Browse each file selected above as containing paths of log files
7e8648
-# ('/etc/rsyslog.conf' and '/etc/rsyslog.d/*.conf' in the default configuration)
7e8648
-for LOG_FILE in "${RSYSLOG_CONFIG_FILES[@]}"
7e8648
-do
7e8648
-	# From each of these files extract just particular log file path(s), thus:
7e8648
-	# * Ignore lines starting with space (' '), comment ('#"), or variable syntax ('$') characters,
7e8648
-	# * Ignore empty lines,
7e8648
-	# * Strip quotes and closing brackets from paths.
7e8648
-	# * Ignore paths that match /dev|/etc.*\.conf, as those are paths, but likely not log files
7e8648
-	# * From the remaining valid rows select only fields constituting a log file path
7e8648
-	# Text file column is understood to represent a log file path if and only if all of the following are met:
7e8648
-	# * it contains at least one slash '/' character,
7e8648
-	# * it is preceded by space
7e8648
-	# * it doesn't contain space (' '), colon (':'), and semicolon (';') characters
7e8648
-	# Search log file for path(s) only in case it exists!
7e8648
-	if [[ -f "${LOG_FILE}" ]]
7e8648
-	then
7e8648
-		NORMALIZED_CONFIG_FILE_LINES=$(sed -e "/^[#|$]/d" "${LOG_FILE}")
7e8648
-		LINES_WITH_PATHS=$(grep '[^/]*\s\+\S*/\S\+$' <<< "${NORMALIZED_CONFIG_FILE_LINES}")
7e8648
-		FILTERED_PATHS=$(awk '{if(NF>=2&&($NF~/^\//||$NF~/^-\//)){sub(/^-\//,"/",$NF);print $NF}}' <<< "${LINES_WITH_PATHS}")
7e8648
-		CLEANED_PATHS=$(sed -e "s/[\"')]//g; /\\/etc.*\.conf/d; /\\/dev\\//d" <<< "${FILTERED_PATHS}")
7e8648
-		MATCHED_ITEMS=$(sed -e "/^$/d" <<< "${CLEANED_PATHS}")
7e8648
-		# Since above sed command might return more than one item (delimited by newline), split the particular
7e8648
-		# matches entries into new array specific for this log file
7e8648
-		readarray -t ARRAY_FOR_LOG_FILE <<< "$MATCHED_ITEMS"
7e8648
-		# Concatenate the two arrays - previous content of $LOG_FILE_PATHS array with
7e8648
-		# items from newly created array for this log file
7e8648
-		LOG_FILE_PATHS+=("${ARRAY_FOR_LOG_FILE[@]}")
7e8648
-		# Delete the temporary array
7e8648
-		unset ARRAY_FOR_LOG_FILE
7e8648
-	fi
7e8648
-done
7e8648
-{{% if product in ["debian10", "debian11", "ubuntu1604", "ubuntu1804", "ubuntu2004", "ubuntu2204", "sle15", "sle12"] %}}
7e8648
-DESIRED_PERM_MOD=640
7e8648
-{{% else %}}
7e8648
-DESIRED_PERM_MOD=600
7e8648
-{{% endif %}}
7e8648
-# Correct the form o
7e8648
-for LOG_FILE_PATH in "${LOG_FILE_PATHS[@]}"
7e8648
-do
7e8648
-	# Sanity check - if particular $LOG_FILE_PATH is empty string, skip it from further processing
7e8648
-	if [ -z "$LOG_FILE_PATH" ]
7e8648
-	then
7e8648
-		continue
7e8648
-	fi
7e8648
-
7e8648
-	# Also for each log file check if its permissions differ from 600. If so, correct them
7e8648
-	if [ -f "$LOG_FILE_PATH" ] && [ "$(/usr/bin/stat -c %a "$LOG_FILE_PATH")" -ne $DESIRED_PERM_MOD ]
7e8648
-	then
7e8648
-		/bin/chmod $DESIRED_PERM_MOD "$LOG_FILE_PATH"
7e8648
-	fi
7e8648
-done
7e8648
diff --git a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/oval/shared.xml b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/oval/shared.xml
7e8648
deleted file mode 100644
7e8648
index 559d5fb101..0000000000
7e8648
--- a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/oval/shared.xml
7e8648
+++ /dev/null
7e8648
@@ -1,131 +0,0 @@
7e8648
-<def-group oval_version="5.11">
7e8648
-  <definition class="compliance" id="rsyslog_files_permissions" version="1">
7e8648
-    {{{ oval_metadata("File permissions for all syslog log files should be set correctly.") }}}
7e8648
-
7e8648
-    <criteria operator="AND">
7e8648
-      {{% if product in ["debian10", "debian11", "ubuntu1604", "ubuntu1804"] %}}
7e8648
-      <extend_definition comment="rsyslog daemon is used as local logging daemon" definition_ref="package_rsyslog_installed" />
7e8648
-      {{% endif %}}
7e8648
-      <criterion comment="Check permissions of all system log files" test_ref="test_rsyslog_files_permissions" />
7e8648
-    </criteria>
7e8648
-
7e8648
-  </definition>
7e8648
-
7e8648
-  
7e8648
-       To workaround empty include objects case, when FunctionGroup operations return "does not exist" result, added empty string match -->
7e8648
-  <ind:textfilecontent54_object id="object_rfp_rsyslog_include_config_value" comment="rsyslog's $IncludeConfig directive and include() object values" version="1">
7e8648
-    <ind:filepath>/etc/rsyslog.conf</ind:filepath>
7e8648
-    <ind:pattern operation="pattern match">^(?:include\([\n\s]*file="([^\s;]+)".*|\$IncludeConfig[\s]+([^\s;]+))$</ind:pattern>
7e8648
-    <ind:instance datatype="int" operation="greater than or equal">1</ind:instance>
7e8648
-    <filter action="exclude">state_permissions_ignore_hidden_paths</filter>
7e8648
-  </ind:textfilecontent54_object>
7e8648
-
7e8648
-  <ind:textfilecontent54_state id="state_permissions_ignore_hidden_paths" comment="ignore hidden conf files" version="1">
7e8648
-    
7e8648
-         include() or $IncludeConfig that point to hidden dirs or files.
7e8648
-         Rsyslog ignores these conf files, so we should ignore them too.
7e8648
-    -->
7e8648
-    <ind:subexpression operation="pattern match">^.*\/\..*$</ind:subexpression>
7e8648
-  </ind:textfilecontent54_state>
7e8648
-
7e8648
-  
7e8648
-  <local_variable id="var_rfp_include_config_regex" datatype="string" version="1" comment="$IncludeConfig value converted to regex">
7e8648
-    <unique>
7e8648
-      <glob_to_regex>
7e8648
-        <object_component item_field="subexpression" object_ref="object_rfp_rsyslog_include_config_value" />
7e8648
-      </glob_to_regex>
7e8648
-    </unique>
7e8648
-  </local_variable>
7e8648
-
7e8648
-  
7e8648
-       If the variable has no values, there won't be any objects -->
7e8648
-  <ind:variable_object id="object_var_rfp_include_config_regex" comment="Make variable object from regex variable" version="1">
7e8648
-    <ind:var_ref>var_rfp_include_config_regex</ind:var_ref>
7e8648
-  </ind:variable_object>
7e8648
-
7e8648
-  <local_variable id="var_rfp_syslog_config" datatype="string" version="1" comment="Locations of all rsyslog configuration files as collection">
7e8648
-    <literal_component datatype="string">^/etc/rsyslog.conf$</literal_component>
7e8648
-  </local_variable>
7e8648
-
7e8648
-  <ind:variable_object id="object_var_rfp_syslog_config" comment="Make variable object for use" version="1">
7e8648
-    <ind:var_ref>var_rfp_syslog_config</ind:var_ref>
7e8648
-  </ind:variable_object>
7e8648
-
7e8648
-  
7e8648
-       We do it this way to avoid referencing an empty variable in a state comparison, which
7e8648
-       will cause a test to evaluate to fail. Combining an empty set of objects is fine though -->
7e8648
-  <ind:variable_object id="object_var_rfp_all_log_files" comment="Filter out empty string" version="1">
7e8648
-    <set>
7e8648
-      <object_reference>object_var_rfp_include_config_regex</object_reference>
7e8648
-      <object_reference>object_var_rfp_syslog_config</object_reference>
7e8648
-    </set>
7e8648
-  </ind:variable_object>
7e8648
-
7e8648
-  
7e8648
-       a list of objects won't do. So we make a local_variable from the variable_objects. -->
7e8648
-  <local_variable id="var_rfp_all_log_files" datatype="string" version="1" comment="Locations of all rsyslog configuration files as collection">
7e8648
-    <object_component object_ref="object_var_rfp_all_log_files" item_field="value"/>
7e8648
-  </local_variable>
7e8648
-
7e8648
-  
7e8648
-       that rsyslog's configuration file to select file paths for log files directives
7e8648
-  -->
7e8648
-  <ind:textfilecontent54_object id="object_rfp_log_files_paths" comment="All rsyslog configuration files" version="1">
7e8648
-    <ind:filepath operation="pattern match" var_ref="var_rfp_all_log_files" var_check="at least one" />
7e8648
-    
7e8648
-         to constitute a log file path if all of the following conditions are met:
7e8648
-         * the string represents a regular file on particular file system
7e8648
-           (verified via corresponding file_state below),
7e8648
-         * the chunk of text is in the last column in the row,
7e8648
-           (possibly suffixed by ';' character and rsyslog Template name),
7e8648
-         * contains at least one slash '/' character, and simultaneously
7e8648
-           doesn't contain any of ';', ':' and space characters,
7e8648
-         * the chunk was retrieved from a row not starting with space, '#',
7e8648
-           or '$' characters
7e8648
-    -->
7e8648
-    <ind:pattern operation="pattern match">^[^(\s|#|\$)]+[\s]+.*[\s]+-?(/+[^:;\s]+);*\.*$</ind:pattern>
7e8648
-    <ind:instance datatype="int" operation="greater than or equal">1</ind:instance>
7e8648
-    <filter action="exclude">state_permissions_ignore_include_paths</filter>
7e8648
-  </ind:textfilecontent54_object>
7e8648
-
7e8648
-  <ind:textfilecontent54_state id="state_permissions_ignore_include_paths" comment="ignore" version="1">
7e8648
-    
7e8648
-         include() or $IncludeConfig statements.
7e8648
-         These paths are conf files, not log files. Their permissions don't need to be as
7e8648
-         required for log files, thus, lets exclude them from the list of objects found
7e8648
-    -->
7e8648
-    <ind:text operation="pattern match">(?:file="[^\s;]+"|\$IncludeConfig[\s]+[^\s;]+|\/dev\/.*)</ind:text>
7e8648
-  </ind:textfilecontent54_state>
7e8648
-
7e8648
-  
7e8648
-       retrieved from the different rsyslog configuration files
7e8648
-  -->
7e8648
-  <local_variable id="var_rfp_log_files_paths" datatype="string" version="1" comment="File paths of all rsyslog configuration files">
7e8648
-    <object_component item_field="subexpression" object_ref="object_rfp_log_files_paths" />
7e8648
-  </local_variable>
7e8648
-
7e8648
-  
7e8648
-  <unix:file_test check="all" check_existence="all_exist" id="test_rsyslog_files_permissions" version="1" comment="Permissions of system log files are correct">
7e8648
-    <unix:object object_ref="object_rsyslog_files_permissions" />
7e8648
-    <unix:state state_ref="state_rsyslog_files_permissions" />
7e8648
-  </unix:file_test>
7e8648
-
7e8648
-  <unix:file_object id="object_rsyslog_files_permissions" comment="Various system log files" version="1">
7e8648
-    <unix:filepath datatype="string" var_ref="var_rfp_log_files_paths" var_check="at least one" />
7e8648
-  </unix:file_object>
7e8648
-
7e8648
-  <unix:file_state id="state_rsyslog_files_permissions" version="1">
7e8648
-    <unix:type operation="equals">regular</unix:type>
7e8648
-    <unix:uexec datatype="boolean">false</unix:uexec>
7e8648
-    {{% if product in ["debian10", "debian11", "ubuntu1604", "ubuntu1804", "ubuntu2004", "ubuntu2204", "sle15", "sle12"] %}}
7e8648
-    <unix:gread datatype="boolean">true</unix:gread>
7e8648
-    {{% else %}}
7e8648
-    <unix:gread datatype="boolean">false</unix:gread>
7e8648
-    {{% endif %}}
7e8648
-    <unix:gwrite datatype="boolean">false</unix:gwrite>
7e8648
-    <unix:gexec datatype="boolean">false</unix:gexec>
7e8648
-    <unix:oread datatype="boolean">false</unix:oread>
7e8648
-    <unix:owrite datatype="boolean">false</unix:owrite>
7e8648
-    <unix:oexec datatype="boolean">false</unix:oexec>
7e8648
-  </unix:file_state>
7e8648
-</def-group>
7e8648
diff --git a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/rule.yml b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/rule.yml
7e8648
index 508ff73cde..042c35362d 100644
7e8648
--- a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/rule.yml
7e8648
+++ b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/rule.yml
7e8648
@@ -1,18 +1,24 @@
7e8648
+{{%- if product in ["debian10", "debian11", "ubuntu1604", "ubuntu1804", "ubuntu2004", "ubuntu2204", "sle15", "sle12"] %}}
7e8648
+    {{%- set rsyslog_perm='640' %}}
7e8648
+{{%- else %}}
7e8648
+    {{%- set rsyslog_perm='600' %}}
7e8648
+{{%- endif %}}
7e8648
+
7e8648
 documentation_complete: true
7e8648
 
7e8648
 title: 'Ensure System Log Files Have Correct Permissions'
7e8648
 
7e8648
 description: |-
7e8648
     The file permissions for all log files written by <tt>rsyslog</tt> should
7e8648
-    be set to 600, or more restrictive. These log files are determined by the
7e8648
+    be set to {{{ rsyslog_perm }}}, or more restrictive. These log files are determined by the
7e8648
     second part of each Rule line in <tt>/etc/rsyslog.conf</tt> and typically
7e8648
     all appear in <tt>/var/log</tt>. For each log file LOGFILE
7e8648
     referenced in <tt>/etc/rsyslog.conf</tt>, run the following command to
7e8648
     inspect the file's permissions:
7e8648
     
$ ls -l LOGFILE
7e8648
-    If the permissions are not 600 or more restrictive, run the following
7e8648
+    If the permissions are not {{{ rsyslog_perm }}} or more restrictive, run the following
7e8648
     command to correct this:
7e8648
-    
$ sudo chmod 0600 LOGFILE
"
7e8648
+    
$ sudo chmod {{{ rsyslog_perm }}} LOGFILE
"
7e8648
 
7e8648
 rationale: |-
7e8648
     Log files can contain valuable information regarding system
7e8648
@@ -46,9 +52,23 @@ ocil_clause: 'the permissions are not correct'
7e8648
 
7e8648
 ocil: |-
7e8648
     The file permissions for all log files written by <tt>rsyslog</tt> should
7e8648
-    be set to 600, or more restrictive. These log files are determined by the
7e8648
+    be set to {{{ rsyslog_perm }}}, or more restrictive. These log files are determined by the
7e8648
     second part of each Rule line in <tt>/etc/rsyslog.conf</tt> and typically
7e8648
     all appear in <tt>/var/log</tt>. To see the permissions of a given log
7e8648
     file, run the following command:
7e8648
     
$ ls -l LOGFILE
7e8648
-    The permissions should be 600, or more restrictive.
7e8648
+    The permissions should be {{{ rsyslog_perm }}}, or more restrictive.
7e8648
+
7e8648
+template:
7e8648
+  name: rsyslog_logfiles_attributes_modify
7e8648
+  vars:
7e8648
+    attribute: permissions
7e8648
+    value: '0600'
7e8648
+    value@debian10: '0640'
7e8648
+    value@debian11: '0640'
7e8648
+    value@sle12: '0640'
7e8648
+    value@sle15: '0640'
7e8648
+    value@ubuntu1604: '0640'
7e8648
+    value@ubuntu1804: '0640'
7e8648
+    value@ubuntu2004: '0640'
7e8648
+    value@ubuntu2204: '0640'
7e8648
diff --git a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/IncludeConfig_glob_perms_0600.pass.sh b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/IncludeConfig_glob_perms_0600.pass.sh
7e8648
deleted file mode 100755
7e8648
index c27e7874d9..0000000000
7e8648
--- a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/IncludeConfig_glob_perms_0600.pass.sh
7e8648
+++ /dev/null
7e8648
@@ -1,40 +0,0 @@
7e8648
-#!/bin/bash
7e8648
-# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_sle
7e8648
-
7e8648
-# Check rsyslog.conf with log file permissions 0600 from rules and
7e8648
-# log file permissions 0600 from $IncludeConfig passes.
7e8648
-# test $IncludeConfig with wildcard (*.conf)
7e8648
-
7e8648
-source $SHARED/rsyslog_log_utils.sh
7e8648
-
7e8648
-PERMS=0600
7e8648
-
7e8648
-# setup test data
7e8648
-create_rsyslog_test_logs 2
7e8648
-
7e8648
-# setup test log files and permissions
7e8648
-chmod $PERMS ${RSYSLOG_TEST_LOGS[0]}
7e8648
-chmod $PERMS ${RSYSLOG_TEST_LOGS[1]}
7e8648
-
7e8648
-# create test configuration file
7e8648
-test_conf=${RSYSLOG_TEST_DIR}/test1.conf
7e8648
-cat << EOF > ${test_conf}
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[1]}
7e8648
-EOF
7e8648
-
7e8648
-# create rsyslog.conf configuration file
7e8648
-cat << EOF > $RSYSLOG_CONF
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[0]}
7e8648
-
7e8648
-#### MODULES ####
7e8648
-
7e8648
-\$IncludeConfig ${RSYSLOG_TEST_DIR}/*.conf
7e8648
-EOF
7e8648
diff --git a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/IncludeConfig_glob_perms_0601.fail.sh b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/IncludeConfig_glob_perms_0601.fail.sh
7e8648
deleted file mode 100755
7e8648
index 124b5e863e..0000000000
7e8648
--- a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/IncludeConfig_glob_perms_0601.fail.sh
7e8648
+++ /dev/null
7e8648
@@ -1,41 +0,0 @@
7e8648
-#!/bin/bash
7e8648
-# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol
7e8648
-
7e8648
-# Check rsyslog.conf with log file permissions 0600 from rules and
7e8648
-# log file permissions 0601 from $IncludeConfig fails.
7e8648
-# test $IncludeConfig with wildcard (*.conf)
7e8648
-
7e8648
-source $SHARED/rsyslog_log_utils.sh
7e8648
-
7e8648
-PERMS_PASS=0600
7e8648
-PERMS_FAIL=0601
7e8648
-
7e8648
-# setup test data
7e8648
-create_rsyslog_test_logs 2
7e8648
-
7e8648
-# setup test log files and permissions
7e8648
-chmod $PERMS_PASS ${RSYSLOG_TEST_LOGS[0]}
7e8648
-chmod $PERMS_FAIL ${RSYSLOG_TEST_LOGS[1]}
7e8648
-
7e8648
-# create test configuration file
7e8648
-test_conf=${RSYSLOG_TEST_DIR}/test1.conf
7e8648
-cat << EOF > ${test_conf}
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[1]}
7e8648
-EOF
7e8648
-
7e8648
-# create rsyslog.conf configuration file
7e8648
-cat << EOF > $RSYSLOG_CONF
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*      ${RSYSLOG_TEST_LOGS[0]}
7e8648
-
7e8648
-#### MODULES ####
7e8648
-
7e8648
-\$IncludeConfig ${RSYSLOG_TEST_DIR}/*.conf
7e8648
-EOF
7e8648
diff --git a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/IncludeConfig_perms_0600.pass.sh b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/IncludeConfig_perms_0600.pass.sh
7e8648
deleted file mode 100755
7e8648
index a6ff6a1109..0000000000
7e8648
--- a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/IncludeConfig_perms_0600.pass.sh
7e8648
+++ /dev/null
7e8648
@@ -1,39 +0,0 @@
7e8648
-#!/bin/bash
7e8648
-# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_sle
7e8648
-
7e8648
-# Check rsyslog.conf with log file permissions 0600 from rules and
7e8648
-# log file permissions 0600 from $IncludeConfig passes.
7e8648
-
7e8648
-source $SHARED/rsyslog_log_utils.sh
7e8648
-
7e8648
-PERMS=0600
7e8648
-
7e8648
-# setup test data
7e8648
-create_rsyslog_test_logs 2
7e8648
-
7e8648
-# setup test log files and permissions
7e8648
-chmod $PERMS ${RSYSLOG_TEST_LOGS[0]}
7e8648
-chmod $PERMS ${RSYSLOG_TEST_LOGS[1]}
7e8648
-
7e8648
-# create test configuration file
7e8648
-test_conf=${RSYSLOG_TEST_DIR}/test1.conf
7e8648
-cat << EOF > ${test_conf}
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[1]}
7e8648
-EOF
7e8648
-
7e8648
-# create rsyslog.conf configuration file
7e8648
-cat << EOF > $RSYSLOG_CONF
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[0]}
7e8648
-
7e8648
-#### MODULES ####
7e8648
-
7e8648
-\$IncludeConfig ${test_conf}
7e8648
-EOF
7e8648
diff --git a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/IncludeConfig_perms_0601.fail.sh b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/IncludeConfig_perms_0601.fail.sh
7e8648
deleted file mode 100755
7e8648
index 2ae5c89a4e..0000000000
7e8648
--- a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/IncludeConfig_perms_0601.fail.sh
7e8648
+++ /dev/null
7e8648
@@ -1,40 +0,0 @@
7e8648
-#!/bin/bash
7e8648
-# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol
7e8648
-
7e8648
-# Check rsyslog.conf with log file permissions 0600 from rules and
7e8648
-# log file permissions 0601 from $IncludeConfig fails.
7e8648
-
7e8648
-source $SHARED/rsyslog_log_utils.sh
7e8648
-
7e8648
-PERMS_PASS=0600
7e8648
-PERMS_FAIL=0601
7e8648
-
7e8648
-# setup test data
7e8648
-create_rsyslog_test_logs 2
7e8648
-
7e8648
-# setup test log files and permissions
7e8648
-chmod $PERMS_PASS ${RSYSLOG_TEST_LOGS[0]}
7e8648
-chmod $PERMS_FAIL ${RSYSLOG_TEST_LOGS[1]}
7e8648
-
7e8648
-# create test configuration file
7e8648
-test_conf=${RSYSLOG_TEST_DIR}/test1.conf
7e8648
-cat << EOF > ${test_conf}
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[1]}
7e8648
-EOF
7e8648
-
7e8648
-# create rsyslog.conf configuration file
7e8648
-cat << EOF > $RSYSLOG_CONF
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*      ${RSYSLOG_TEST_LOGS[0]}
7e8648
-
7e8648
-#### MODULES ####
7e8648
-
7e8648
-\$IncludeConfig ${test_conf}
7e8648
-EOF
7e8648
diff --git a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_config_syntax_perms_0600.pass.sh b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_config_syntax_perms_0600.pass.sh
7e8648
deleted file mode 100755
7e8648
index a5a2f67fad..0000000000
7e8648
--- a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_config_syntax_perms_0600.pass.sh
7e8648
+++ /dev/null
7e8648
@@ -1,85 +0,0 @@
7e8648
-#!/bin/bash
7e8648
-# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_sle
7e8648
-
7e8648
-# Check rsyslog.conf with log file permissions 0600 from rules and
7e8648
-# log file permissions 0600 from $IncludeConfig passes.
7e8648
-
7e8648
-source $SHARED/rsyslog_log_utils.sh
7e8648
-
7e8648
-PERMS=0600
7e8648
-
7e8648
-# setup test data
7e8648
-create_rsyslog_test_logs 5
7e8648
-
7e8648
-# setup test log files and permissions
7e8648
-chmod $PERMS ${RSYSLOG_TEST_LOGS[0]}
7e8648
-chmod $PERMS ${RSYSLOG_TEST_LOGS[1]}
7e8648
-chmod $PERMS ${RSYSLOG_TEST_LOGS[2]}
7e8648
-chmod $PERMS ${RSYSLOG_TEST_LOGS[3]}
7e8648
-chmod $PERMS ${RSYSLOG_TEST_LOGS[4]}
7e8648
-
7e8648
-# create test configuration files
7e8648
-conf_subdir=${RSYSLOG_TEST_DIR}/subdir
7e8648
-conf_hiddir=${RSYSLOG_TEST_DIR}/.hiddir
7e8648
-mkdir ${conf_subdir}
7e8648
-mkdir ${conf_hiddir}
7e8648
-
7e8648
-test_conf_in_subdir=${conf_subdir}/in_subdir.conf
7e8648
-test_conf_name_bak=${RSYSLOG_TEST_DIR}/name.bak
7e8648
-
7e8648
-test_conf_in_hiddir=${conf_hiddir}/in_hiddir.conf
7e8648
-test_conf_dot_name=${RSYSLOG_TEST_DIR}/.name.conf
7e8648
-
7e8648
-cat << EOF > ${test_conf_in_subdir}
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[1]}
7e8648
-EOF
7e8648
-
7e8648
-cat << EOF > ${test_conf_name_bak}
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[2]}
7e8648
-EOF
7e8648
-
7e8648
-cat << EOF > ${test_conf_in_hiddir}
7e8648
-# rsyslog configuration file
7e8648
-# not used
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[3]}
7e8648
-EOF
7e8648
-
7e8648
-cat << EOF > ${test_conf_dot_name}
7e8648
-# rsyslog configuration file
7e8648
-# not used
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[4]}
7e8648
-EOF
7e8648
-
7e8648
-# create rsyslog.conf configuration file
7e8648
-cat << EOF > $RSYSLOG_CONF
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[0]}
7e8648
-
7e8648
-#### MODULES ####
7e8648
-
7e8648
-include(file="${RSYSLOG_TEST_DIR}/*/*.conf" mode="optional")
7e8648
-include(file="${RSYSLOG_TEST_DIR}/*.conf" mode="optional")
7e8648
-include(file="${RSYSLOG_TEST_DIR}" mode="optional")
7e8648
-
7e8648
-\$IncludeConfig ${RSYSLOG_TEST_DIR}/*/*.conf
7e8648
-\$IncludeConfig ${RSYSLOG_TEST_DIR}/*.conf
7e8648
-\$IncludeConfig ${RSYSLOG_TEST_DIR}
7e8648
-
7e8648
-EOF
7e8648
diff --git a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_config_syntax_perms_0601.fail.sh b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_config_syntax_perms_0601.fail.sh
7e8648
deleted file mode 100755
7e8648
index fe4db0a3c9..0000000000
7e8648
--- a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_config_syntax_perms_0601.fail.sh
7e8648
+++ /dev/null
7e8648
@@ -1,86 +0,0 @@
7e8648
-#!/bin/bash
7e8648
-# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_sle
7e8648
-
7e8648
-# Check rsyslog.conf with log file permissions 0600 from rules and
7e8648
-# log file permissions 0601 from $IncludeConfig fails.
7e8648
-
7e8648
-source $SHARED/rsyslog_log_utils.sh
7e8648
-
7e8648
-PERMS_PASS=0600
7e8648
-PERMS_FAIL=0601
7e8648
-
7e8648
-# setup test data
7e8648
-create_rsyslog_test_logs 5
7e8648
-
7e8648
-# setup test log files and permissions
7e8648
-chmod $PERMS_PASS ${RSYSLOG_TEST_LOGS[0]}
7e8648
-chmod $PERMS_FAIL ${RSYSLOG_TEST_LOGS[1]}
7e8648
-chmod $PERMS_FAIL ${RSYSLOG_TEST_LOGS[2]}
7e8648
-chmod $PERMS_FAIL ${RSYSLOG_TEST_LOGS[3]}
7e8648
-chmod $PERMS_FAIL ${RSYSLOG_TEST_LOGS[4]}
7e8648
-
7e8648
-# create test configuration files
7e8648
-conf_subdir=${RSYSLOG_TEST_DIR}/subdir
7e8648
-conf_hiddir=${RSYSLOG_TEST_DIR}/.hiddir
7e8648
-mkdir ${conf_subdir}
7e8648
-mkdir ${conf_hiddir}
7e8648
-
7e8648
-test_conf_in_subdir=${conf_subdir}/in_subdir.conf
7e8648
-test_conf_name_bak=${RSYSLOG_TEST_DIR}/name.bak
7e8648
-
7e8648
-test_conf_in_hiddir=${conf_hiddir}/in_hiddir.conf
7e8648
-test_conf_dot_name=${RSYSLOG_TEST_DIR}/.name.conf
7e8648
-
7e8648
-cat << EOF > ${test_conf_in_subdir}
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[1]}
7e8648
-EOF
7e8648
-
7e8648
-cat << EOF > ${test_conf_name_bak}
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[2]}
7e8648
-EOF
7e8648
-
7e8648
-cat << EOF > ${test_conf_in_hiddir}
7e8648
-# rsyslog configuration file
7e8648
-# not used
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[3]}
7e8648
-EOF
7e8648
-
7e8648
-cat << EOF > ${test_conf_dot_name}
7e8648
-# rsyslog configuration file
7e8648
-# not used
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[4]}
7e8648
-EOF
7e8648
-
7e8648
-# create rsyslog.conf configuration file
7e8648
-cat << EOF > $RSYSLOG_CONF
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[0]}
7e8648
-
7e8648
-#### MODULES ####
7e8648
-
7e8648
-include(file="${RSYSLOG_TEST_DIR}/*/*.conf" mode="optional")
7e8648
-include(file="${RSYSLOG_TEST_DIR}/*.conf" mode="optional")
7e8648
-include(file="${RSYSLOG_TEST_DIR}" mode="optional")
7e8648
-
7e8648
-\$IncludeConfig ${RSYSLOG_TEST_DIR}/*/*.conf
7e8648
-\$IncludeConfig ${RSYSLOG_TEST_DIR}/*.conf
7e8648
-\$IncludeConfig ${RSYSLOG_TEST_DIR}
7e8648
-
7e8648
-EOF
7e8648
diff --git a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_multiline_perms_0600.pass.sh b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_multiline_perms_0600.pass.sh
7e8648
deleted file mode 100755
7e8648
index eabcb21956..0000000000
7e8648
--- a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_multiline_perms_0600.pass.sh
7e8648
+++ /dev/null
7e8648
@@ -1,41 +0,0 @@
7e8648
-#!/bin/bash
7e8648
-# platform = Red Hat Enterprise Linux 8,multi_platform_fedora,Oracle Linux 8,multi_platform_sle
7e8648
-
7e8648
-# Check rsyslog.conf with log file permissions 0600 from rules and
7e8648
-# log file permissions 0600 from multiline include() passes.
7e8648
-
7e8648
-source $SHARED/rsyslog_log_utils.sh
7e8648
-
7e8648
-PERMS=0600
7e8648
-
7e8648
-# setup test data
7e8648
-create_rsyslog_test_logs 2
7e8648
-
7e8648
-# setup test log files and permissions
7e8648
-chmod $PERMS ${RSYSLOG_TEST_LOGS[0]}
7e8648
-chmod $PERMS ${RSYSLOG_TEST_LOGS[1]}
7e8648
-
7e8648
-# create test configuration file
7e8648
-test_conf=${RSYSLOG_TEST_DIR}/test1.conf
7e8648
-cat << EOF > ${test_conf}
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[1]}
7e8648
-EOF
7e8648
-
7e8648
-# create rsyslog.conf configuration file
7e8648
-cat << EOF > $RSYSLOG_CONF
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[0]}
7e8648
-
7e8648
-#### MODULES ####
7e8648
-
7e8648
-include(
7e8648
-   file="${test_conf}"
7e8648
-)
7e8648
-EOF
7e8648
diff --git a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_perms_0600.pass.sh b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_perms_0600.pass.sh
7e8648
deleted file mode 100755
7e8648
index 32cd4c334a..0000000000
7e8648
--- a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_perms_0600.pass.sh
7e8648
+++ /dev/null
7e8648
@@ -1,39 +0,0 @@
7e8648
-#!/bin/bash
7e8648
-# platform = Red Hat Enterprise Linux 8,multi_platform_fedora,Oracle Linux 8,multi_platform_sle
7e8648
-
7e8648
-# Check rsyslog.conf with log file permissions 0600 from rules and
7e8648
-# log file permissions 0600 from include() passes.
7e8648
-
7e8648
-source $SHARED/rsyslog_log_utils.sh
7e8648
-
7e8648
-PERMS=0600
7e8648
-
7e8648
-# setup test data
7e8648
-create_rsyslog_test_logs 2
7e8648
-
7e8648
-# setup test log files and permissions
7e8648
-chmod $PERMS ${RSYSLOG_TEST_LOGS[0]}
7e8648
-chmod $PERMS ${RSYSLOG_TEST_LOGS[1]}
7e8648
-
7e8648
-# create test configuration file
7e8648
-test_conf=${RSYSLOG_TEST_DIR}/test1.conf
7e8648
-cat << EOF > ${test_conf}
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[1]}
7e8648
-EOF
7e8648
-
7e8648
-# create rsyslog.conf configuration file
7e8648
-cat << EOF > $RSYSLOG_CONF
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[0]}
7e8648
-
7e8648
-#### MODULES ####
7e8648
-
7e8648
-include(file="${test_conf}")
7e8648
-EOF
7e8648
diff --git a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_perms_0600_IncludeConfig_perms_0600.pass.sh b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_perms_0600_IncludeConfig_perms_0600.pass.sh
7e8648
deleted file mode 100755
7e8648
index 357d4f9718..0000000000
7e8648
--- a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_perms_0600_IncludeConfig_perms_0600.pass.sh
7e8648
+++ /dev/null
7e8648
@@ -1,52 +0,0 @@
7e8648
-#!/bin/bash
7e8648
-# platform = Red Hat Enterprise Linux 8,multi_platform_fedora,Oracle Linux 8
7e8648
-
7e8648
-# Check rsyslog.conf with log file permisssions 0600 from rules and
7e8648
-# log file permissions 0600 from include() passes.
7e8648
-
7e8648
-source $SHARED/rsyslog_log_utils.sh
7e8648
-
7e8648
-PERMS_PASS=0600
7e8648
-
7e8648
-# setup test data
7e8648
-create_rsyslog_test_logs 3
7e8648
-
7e8648
-# setup test log files and permissions
7e8648
-chmod $PERMS_PASS ${RSYSLOG_TEST_LOGS[0]}
7e8648
-chmod $PERMS_PASS ${RSYSLOG_TEST_LOGS[1]}
7e8648
-chmod $PERMS_PASS ${RSYSLOG_TEST_LOGS[2]}
7e8648
-
7e8648
-# create test configuration file
7e8648
-test_conf=${RSYSLOG_TEST_DIR}/test1.conf
7e8648
-cat << EOF > ${test_conf}
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[1]}
7e8648
-EOF
7e8648
-
7e8648
-# create test2 configuration file
7e8648
-test_conf2=${RSYSLOG_TEST_DIR}/test2.conf
7e8648
-cat << EOF > ${test_conf2}
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[2]}
7e8648
-EOF
7e8648
-
7e8648
-# create rsyslog.conf configuration file
7e8648
-cat << EOF > $RSYSLOG_CONF
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[0]}
7e8648
-
7e8648
-#### MODULES ####
7e8648
-
7e8648
-include(file="${test_conf}")
7e8648
-
7e8648
-\$IncludeConfig ${test_conf2}
7e8648
-EOF
7e8648
diff --git a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_perms_0600_IncludeConfig_perms_0601.fail.sh b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_perms_0600_IncludeConfig_perms_0601.fail.sh
7e8648
deleted file mode 100755
7e8648
index 7bdb830c00..0000000000
7e8648
--- a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_perms_0600_IncludeConfig_perms_0601.fail.sh
7e8648
+++ /dev/null
7e8648
@@ -1,53 +0,0 @@
7e8648
-#!/bin/bash
7e8648
-# platform = Red Hat Enterprise Linux 8,multi_platform_fedora,Oracle Linux 8
7e8648
-
7e8648
-# Check rsyslog.conf with log file permisssions 0600 from rules and
7e8648
-# log file permissions 0601 from include() fails.
7e8648
-
7e8648
-source $SHARED/rsyslog_log_utils.sh
7e8648
-
7e8648
-PERMS_PASS=0600
7e8648
-PERMS_FAIL=0601
7e8648
-
7e8648
-# setup test data
7e8648
-create_rsyslog_test_logs 3
7e8648
-
7e8648
-# setup test log files and permissions
7e8648
-chmod $PERMS_PASS ${RSYSLOG_TEST_LOGS[0]}
7e8648
-chmod $PERMS_PASS ${RSYSLOG_TEST_LOGS[1]}
7e8648
-chmod $PERMS_FAIL ${RSYSLOG_TEST_LOGS[2]}
7e8648
-
7e8648
-# create test configuration file
7e8648
-test_conf=${RSYSLOG_TEST_DIR}/test1.conf
7e8648
-cat << EOF > ${test_conf}
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[1]}
7e8648
-EOF
7e8648
-
7e8648
-# create test2 configuration file
7e8648
-test_conf2=${RSYSLOG_TEST_DIR}/test2.conf
7e8648
-cat << EOF > ${test_conf2}
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[2]}
7e8648
-EOF
7e8648
-
7e8648
-# create rsyslog.conf configuration file
7e8648
-cat << EOF > $RSYSLOG_CONF
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[0]}
7e8648
-
7e8648
-#### MODULES ####
7e8648
-
7e8648
-include(file="${test_conf}")
7e8648
-
7e8648
-\$IncludeConfig ${test_conf2}
7e8648
-EOF
7e8648
diff --git a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_perms_0600_IncludeConfig_perms_0601_hidden.pass.sh b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_perms_0600_IncludeConfig_perms_0601_hidden.pass.sh
7e8648
deleted file mode 100644
7e8648
index 9b0185c6b2..0000000000
7e8648
--- a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_perms_0600_IncludeConfig_perms_0601_hidden.pass.sh
7e8648
+++ /dev/null
7e8648
@@ -1,53 +0,0 @@
7e8648
-#!/bin/bash
7e8648
-# platform = Red Hat Enterprise Linux 8,multi_platform_fedora,Oracle Linux 8
7e8648
-
7e8648
-# Check rsyslog.conf with log file permisssions 0600 from rules and
7e8648
-# log file permissions 0601 from include() fails.
7e8648
-
7e8648
-source $SHARED/rsyslog_log_utils.sh
7e8648
-
7e8648
-PERMS_PASS=0600
7e8648
-PERMS_FAIL=0601
7e8648
-
7e8648
-# setup test data
7e8648
-create_rsyslog_test_logs 3
7e8648
-
7e8648
-# setup test log files and permissions
7e8648
-chmod $PERMS_PASS ${RSYSLOG_TEST_LOGS[0]}
7e8648
-chmod $PERMS_PASS ${RSYSLOG_TEST_LOGS[1]}
7e8648
-chmod $PERMS_FAIL ${RSYSLOG_TEST_LOGS[2]}
7e8648
-
7e8648
-# create test configuration file
7e8648
-test_conf=${RSYSLOG_TEST_DIR}/test1.conf
7e8648
-cat << EOF > ${test_conf}
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[1]}
7e8648
-EOF
7e8648
-
7e8648
-# create hidden test2 configuration file
7e8648
-test_conf2=${RSYSLOG_TEST_DIR}/.test2.conf
7e8648
-cat << EOF > ${test_conf2}
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[2]}
7e8648
-EOF
7e8648
-
7e8648
-# create rsyslog.conf configuration file
7e8648
-cat << EOF > $RSYSLOG_CONF
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[0]}
7e8648
-
7e8648
-#### MODULES ####
7e8648
-
7e8648
-include(file="${test_conf}")
7e8648
-
7e8648
-\$IncludeConfig ${test_conf2}
7e8648
-EOF
7e8648
diff --git a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_perms_0600_IncludeConfig_perms_0601_missing.pass.sh b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_perms_0600_IncludeConfig_perms_0601_missing.pass.sh
7e8648
deleted file mode 100644
7e8648
index b929f2a94a..0000000000
7e8648
--- a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_perms_0600_IncludeConfig_perms_0601_missing.pass.sh
7e8648
+++ /dev/null
7e8648
@@ -1,45 +0,0 @@
7e8648
-#!/bin/bash
7e8648
-# platform = Red Hat Enterprise Linux 8,multi_platform_fedora,Oracle Linux 8
7e8648
-
7e8648
-# Check rsyslog.conf with log file permisssions 0600 from rules and
7e8648
-# log file permissions 0601 from include() fails.
7e8648
-
7e8648
-source $SHARED/rsyslog_log_utils.sh
7e8648
-
7e8648
-PERMS_PASS=0600
7e8648
-PERMS_FAIL=0601
7e8648
-
7e8648
-# setup test data
7e8648
-create_rsyslog_test_logs 3
7e8648
-
7e8648
-# setup test log files and permissions
7e8648
-chmod $PERMS_PASS ${RSYSLOG_TEST_LOGS[0]}
7e8648
-chmod $PERMS_PASS ${RSYSLOG_TEST_LOGS[1]}
7e8648
-chmod $PERMS_FAIL ${RSYSLOG_TEST_LOGS[2]}
7e8648
-
7e8648
-# create test configuration file
7e8648
-test_conf=${RSYSLOG_TEST_DIR}/test1.conf
7e8648
-cat << EOF > ${test_conf}
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[1]}
7e8648
-EOF
7e8648
-
7e8648
-# Skip creation test2 configuration file
7e8648
-
7e8648
-# create rsyslog.conf configuration file
7e8648
-cat << EOF > $RSYSLOG_CONF
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[0]}
7e8648
-
7e8648
-#### MODULES ####
7e8648
-
7e8648
-include(file="${test_conf}")
7e8648
-
7e8648
-\$IncludeConfig ${test_conf2}
7e8648
-EOF
7e8648
diff --git a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_perms_0600_cloudinit.pass.sh b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_perms_0600_cloudinit.pass.sh
7e8648
deleted file mode 100644
7e8648
index 2eb515a43e..0000000000
7e8648
--- a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_perms_0600_cloudinit.pass.sh
7e8648
+++ /dev/null
7e8648
@@ -1,23 +0,0 @@
7e8648
-#!/bin/bash
7e8648
-# platform = Red Hat Enterprise Linux 8,multi_platform_fedora,Oracle Linux 8,multi_platform_sle
7e8648
-
7e8648
-source $SHARED/rsyslog_log_utils.sh
7e8648
-
7e8648
-PERMS=0600
7e8648
-
7e8648
-# setup test data
7e8648
-create_rsyslog_test_logs 2
7e8648
-
7e8648
-# setup test log files and permissions
7e8648
-chmod $PERMS ${RSYSLOG_TEST_LOGS[@]}
7e8648
-
7e8648
-# create rsyslog.conf configuration file
7e8648
-cat << EOF > $RSYSLOG_CONF
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[0]}
7e8648
-:syslogtag, isequal, "[CLOUDINIT]" ${RSYSLOG_TEST_LOGS[1]}
7e8648
-EOF
7e8648
-
7e8648
diff --git a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_perms_0601.fail.sh b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_perms_0601.fail.sh
7e8648
deleted file mode 100755
7e8648
index fd3f9e92ec..0000000000
7e8648
--- a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_perms_0601.fail.sh
7e8648
+++ /dev/null
7e8648
@@ -1,41 +0,0 @@
7e8648
-#!/bin/bash
7e8648
-# platform = Red Hat Enterprise Linux 8,multi_platform_fedora,Oracle Linux 8
7e8648
-
7e8648
-# Check rsyslog.conf with log file permissions 0600 from rules and
7e8648
-# log file permissions 0601 from include() fails.
7e8648
-
7e8648
-source $SHARED/rsyslog_log_utils.sh
7e8648
-
7e8648
-PERMS_FAIL=0601
7e8648
-
7e8648
-PERMS_PASS=0600
7e8648
-
7e8648
-# setup test data
7e8648
-create_rsyslog_test_logs 2
7e8648
-
7e8648
-# setup test log files and permissions
7e8648
-chmod $PERMS_PASS ${RSYSLOG_TEST_LOGS[0]}
7e8648
-chmod $PERMS_FAIL ${RSYSLOG_TEST_LOGS[1]}
7e8648
-
7e8648
-# create test configuration file
7e8648
-test_conf=${RSYSLOG_TEST_DIR}/test1.conf
7e8648
-cat << EOF > ${test_conf}
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[1]}
7e8648
-EOF
7e8648
-
7e8648
-# create rsyslog.conf configuration file
7e8648
-cat << EOF > $RSYSLOG_CONF
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*      ${RSYSLOG_TEST_LOGS[0]}
7e8648
-
7e8648
-#### MODULES ####
7e8648
-
7e8648
-include(file="${test_conf}")
7e8648
-EOF
7e8648
diff --git a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_perms_0601_cloudinit.fail.sh b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_perms_0601_cloudinit.fail.sh
7e8648
deleted file mode 100644
7e8648
index 7a598626d0..0000000000
7e8648
--- a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/include_perms_0601_cloudinit.fail.sh
7e8648
+++ /dev/null
7e8648
@@ -1,22 +0,0 @@
7e8648
-#!/bin/bash
7e8648
-# platform = Red Hat Enterprise Linux 8,multi_platform_fedora,Oracle Linux 8,multi_platform_sle
7e8648
-
7e8648
-source $SHARED/rsyslog_log_utils.sh
7e8648
-
7e8648
-# setup test data
7e8648
-create_rsyslog_test_logs 2
7e8648
-
7e8648
-# setup test log files and permissions
7e8648
-chmod 0600 ${RSYSLOG_TEST_LOGS[0]}
7e8648
-chmod 0601 ${RSYSLOG_TEST_LOGS[1]}
7e8648
-
7e8648
-# create rsyslog.conf configuration file
7e8648
-cat << EOF > $RSYSLOG_CONF
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[0]}
7e8648
-:syslogtag, isequal, "[CLOUDINIT]" ${RSYSLOG_TEST_LOGS[1]}
7e8648
-EOF
7e8648
-
7e8648
diff --git a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/mixed_correct_attr_group_read.pass.sh b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/mixed_correct_attr_group_read.pass.sh
7e8648
new file mode 100755
7e8648
index 0000000000..b3846fec47
7e8648
--- /dev/null
7e8648
+++ b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/mixed_correct_attr_group_read.pass.sh
7e8648
@@ -0,0 +1,25 @@
7e8648
+#!/bin/bash
7e8648
+# platform = multi_platform_sle,multi_platform_ubuntu
7e8648
+
7e8648
+# Declare variables used for the tests and define the create_rsyslog_test_logs function
7e8648
+source $SHARED/rsyslog_log_utils.sh
7e8648
+
7e8648
+CHATTR="chmod"
7e8648
+ATTR_VALUE="0640"
7e8648
+
7e8648
+# create three test log file
7e8648
+create_rsyslog_test_logs 2
7e8648
+
7e8648
+# setup test log file property
7e8648
+$CHATTR $ATTR_VALUE ${RSYSLOG_TEST_LOGS[0]}
7e8648
+$CHATTR $ATTR_VALUE ${RSYSLOG_TEST_LOGS[1]}
7e8648
+
7e8648
+# add rules with both syntax for different test log files
7e8648
+cat << EOF > $RSYSLOG_CONF
7e8648
+# rsyslog configuration file
7e8648
+
7e8648
+#### RULES ####
7e8648
+*.*     ${RSYSLOG_TEST_LOGS[0]}
7e8648
+*.*     action(type="omfile" FileCreateMode="0640" fileOwner="root" fileGroup="hoiadm" File="${RSYSLOG_TEST_LOGS[1]}")
7e8648
+
7e8648
+EOF
7e8648
diff --git a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/mixed_correct_attr_stricter.pass.sh b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/mixed_correct_attr_stricter.pass.sh
7e8648
new file mode 100755
7e8648
index 0000000000..0b4cb5dce0
7e8648
--- /dev/null
7e8648
+++ b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/mixed_correct_attr_stricter.pass.sh
7e8648
@@ -0,0 +1,25 @@
7e8648
+#!/bin/bash
7e8648
+# platform = multi_platform_all
7e8648
+
7e8648
+# Declare variables used for the tests and define the create_rsyslog_test_logs function
7e8648
+source $SHARED/rsyslog_log_utils.sh
7e8648
+
7e8648
+CHATTR="chmod"
7e8648
+ATTR_VALUE="0400"
7e8648
+
7e8648
+# create three test log file
7e8648
+create_rsyslog_test_logs 2
7e8648
+
7e8648
+# setup test log file property
7e8648
+$CHATTR $ATTR_VALUE ${RSYSLOG_TEST_LOGS[0]}
7e8648
+$CHATTR $ATTR_VALUE ${RSYSLOG_TEST_LOGS[1]}
7e8648
+
7e8648
+# add rules with both syntax for different test log files
7e8648
+cat << EOF > $RSYSLOG_CONF
7e8648
+# rsyslog configuration file
7e8648
+
7e8648
+#### RULES ####
7e8648
+*.*     ${RSYSLOG_TEST_LOGS[0]}
7e8648
+*.*     action(type="omfile" FileCreateMode="0640" fileOwner="root" fileGroup="hoiadm" File="${RSYSLOG_TEST_LOGS[1]}")
7e8648
+
7e8648
+EOF
7e8648
diff --git a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/perms_0600.pass.sh b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/perms_0600.pass.sh
7e8648
deleted file mode 100755
7e8648
index fbdcd18f77..0000000000
7e8648
--- a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/perms_0600.pass.sh
7e8648
+++ /dev/null
7e8648
@@ -1,35 +0,0 @@
7e8648
-#!/bin/bash
7e8648
-# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_sle
7e8648
-
7e8648
-# Check if log file with permissions 0600 in rsyslog.conf passes.
7e8648
-
7e8648
-source $SHARED/rsyslog_log_utils.sh
7e8648
-
7e8648
-PERMS=0600
7e8648
-
7e8648
-# setup test data
7e8648
-create_rsyslog_test_logs 4
7e8648
-
7e8648
-# setup all files with incorrect permission
7e8648
-chmod 0601 "${RSYSLOG_TEST_LOGS[@]}"
7e8648
-
7e8648
-# setup the real logfile with correct permissions
7e8648
-chmod $PERMS "${RSYSLOG_TEST_LOGS[0]}"
7e8648
-
7e8648
-# add rule with 0600 permissions log file
7e8648
-cat << EOF > $RSYSLOG_CONF
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*        ${RSYSLOG_TEST_LOGS[0]}
7e8648
-
7e8648
- *.*        ${RSYSLOG_TEST_LOGS[1]}
7e8648
-
7e8648
-authpriv.*        /nonexistent_file
7e8648
-
7e8648
-# *.*        /irrelevant_file
7e8648
-
7e8648
-\$something /irrelevant_file
7e8648
-
7e8648
-EOF
7e8648
diff --git a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/perms_0601.fail.sh b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/perms_0601.fail.sh
7e8648
deleted file mode 100755
7e8648
index 75e9558c63..0000000000
7e8648
--- a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/tests/perms_0601.fail.sh
7e8648
+++ /dev/null
7e8648
@@ -1,34 +0,0 @@
7e8648
-#!/bin/bash
7e8648
-# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_sle
7e8648
-
7e8648
-# Check if log file with permissions 0601 in rsyslog.conf fails.
7e8648
-
7e8648
-source $SHARED/rsyslog_log_utils.sh
7e8648
-
7e8648
-PERMS=0601
7e8648
-
7e8648
-# setup test data
7e8648
-create_rsyslog_test_logs 3
7e8648
-
7e8648
-# setup test log file and permissions
7e8648
-chmod $PERMS ${RSYSLOG_TEST_LOGS[0]}
7e8648
-
7e8648
-# add rule with 0601 permissions log file
7e8648
-cat << EOF > $RSYSLOG_CONF
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[0]}
7e8648
-
7e8648
-cron.*        /nonexistent_file
7e8648
-
7e8648
- authpriv.*        /irrelevant_file
7e8648
-
7e8648
-# *.*        /irrelevant_file
7e8648
-
7e8648
-\$something /irrelevant_file
7e8648
-
7e8648
-something.*	${RSYSLOG_TEST_LOGS[2]}
7e8648
-
7e8648
-EOF
7e8648
diff --git a/shared/templates/rsyslog_logfiles_attributes_modify/ansible.template b/shared/templates/rsyslog_logfiles_attributes_modify/ansible.template
7e8648
index fc9e8844b6..81d6220415 100644
7e8648
--- a/shared/templates/rsyslog_logfiles_attributes_modify/ansible.template
7e8648
+++ b/shared/templates/rsyslog_logfiles_attributes_modify/ansible.template
7e8648
@@ -20,7 +20,7 @@
7e8648
 - name: '{{{ rule_title }}} - Get include files directives'
7e8648
   ansible.builtin.shell: |
7e8648
     set -o pipefail
7e8648
-    grep -oP '^\s*include\s*\(\s*file.*' {{ rsyslog_etc_config }} |cut  -d"\"" -f 2 || true
7e8648
+    awk '/)/{f=0} /include\(/{f=1} f{nf=gensub("^(include\\(|\\s*)file=\"(\\S+)\".*","\\2",1); if($0!=nf){print nf}}' {{ rsyslog_etc_config }} || true
7e8648
   register: rsyslog_new_inc
7e8648
   changed_when: False
7e8648
 
7e8648
@@ -61,8 +61,9 @@
7e8648
 - name: '{{{ rule_title }}} -Setup log files attribute'
7e8648
   ansible.builtin.file:
7e8648
     path: "{{ item }}"
7e8648
-    owner: '{{ ( "{{{ ATTRIBUTE }}}" is match("owner")) | ternary({{{ VALUE }}}, omit) }}'
7e8648
-    group: '{{ ( "{{{ ATTRIBUTE }}}" is match("groupowner")) | ternary({{{ VALUE }}} , omit) }}'
7e8648
+    {{{ 'owner: ' ~ VALUE if ATTRIBUTE == "owner" }}}
7e8648
+    {{{- 'group: ' ~ VALUE if ATTRIBUTE == "groupowner" }}}
7e8648
+    {{{- 'mode: ' ~ VALUE if ATTRIBUTE == "permissions" }}}
7e8648
     state: file
7e8648
   loop: "{{ log_files | list | flatten | unique }}"
7e8648
   failed_when: false
7e8648
diff --git a/shared/templates/rsyslog_logfiles_attributes_modify/bash.template b/shared/templates/rsyslog_logfiles_attributes_modify/bash.template
7e8648
index ab4a563dc5..d6755d5692 100644
7e8648
--- a/shared/templates/rsyslog_logfiles_attributes_modify/bash.template
7e8648
+++ b/shared/templates/rsyslog_logfiles_attributes_modify/bash.template
7e8648
@@ -48,7 +48,8 @@ do
7e8648
 	# * Strip quotes and closing brackets from paths.
7e8648
 	# * Ignore paths that match /dev|/etc.*\.conf, as those are paths, but likely not log files
7e8648
 	# * From the remaining valid rows select only fields constituting a log file path
7e8648
-	# Text file column is understood to represent a log file path if and only if all of the following are met:
7e8648
+	# Text file column is understood to represent a log file path if and only if all of the
7e8648
+	# following are met:
7e8648
 	# * it contains at least one slash '/' character,
7e8648
 	# * it is preceded by space
7e8648
 	# * it doesn't contain space (' '), colon (':'), and semicolon (';') characters
7e8648
@@ -60,8 +61,8 @@ do
7e8648
 		FILTERED_PATHS=$(awk '{if(NF>=2&&($NF~/^\//||$NF~/^-\//)){sub(/^-\//,"/",$NF);print $NF}}' <<< "${LINES_WITH_PATHS}")
7e8648
 		CLEANED_PATHS=$(sed -e "s/[\"')]//g; /\\/etc.*\.conf/d; /\\/dev\\//d" <<< "${FILTERED_PATHS}")
7e8648
 		MATCHED_ITEMS=$(sed -e "/^$/d" <<< "${CLEANED_PATHS}")
7e8648
-		# Since above sed command might return more than one item (delimited by newline), split the particular
7e8648
-		# matches entries into new array specific for this log file
7e8648
+		# Since above sed command might return more than one item (delimited by newline), split
7e8648
+		# the particular matches entries into new array specific for this log file
7e8648
 		readarray -t ARRAY_FOR_LOG_FILE <<< "$MATCHED_ITEMS"
7e8648
 		# Concatenate the two arrays - previous content of $LOG_FILE_PATHS array with
7e8648
 		# items from newly created array for this log file
7e8648
@@ -71,7 +72,8 @@ do
7e8648
 	fi
7e8648
 done
7e8648
 
7e8648
-# Check for RainerScript action log format which might be also multiline so grep regex is a bit curly
7e8648
+# Check for RainerScript action log format which might be also multiline so grep regex is a bit
7e8648
+# curly:
7e8648
 # extract possibly multiline action omfile expressions
7e8648
 # extract File="logfile" expression
7e8648
 # match only "logfile" expression
7e8648
@@ -82,22 +84,10 @@ do
7e8648
 	LOG_FILE_PATHS+=("$(echo "${OMFILE_LINES}"| grep -oE "\"([/[:alnum:][:punct:]]*)\""|tr -d "\"")")
7e8648
 done
7e8648
 
7e8648
-FILE_PARAM="{{{ ATTRIBUTE }}}"
7e8648
-FILE_CMD=""
7e8648
-case "$FILE_PARAM" in
7e8648
-     "groupowner")
7e8648
-        FILE_CMD=$(which chgrp)
7e8648
-        ;;
7e8648
-     "owner")
7e8648
-        FILE_CMD=$(which chown)
7e8648
-        ;;
7e8648
-      *)
7e8648
-        echo -n "Not supported file attribute! "
7e8648
-        exit 1
7e8648
-      ;;
7e8648
-esac
7e8648
-
7e8648
-# Correct the form o
7e8648
+# Ensure the correct attribute if file exists
7e8648
+{{{ 'FILE_CMD="chown"' if ATTRIBUTE == "owner" }}}
7e8648
+{{{- 'FILE_CMD="chgrp"' if ATTRIBUTE == "groupowner" }}}
7e8648
+{{{- 'FILE_CMD="chmod"' if ATTRIBUTE == "permissions" }}}
7e8648
 for LOG_FILE_PATH in "${LOG_FILE_PATHS[@]}"
7e8648
 do
7e8648
 	# Sanity check - if particular $LOG_FILE_PATH is empty string, skip it from further processing
7e8648
@@ -105,6 +95,5 @@ do
7e8648
 	then
7e8648
 		continue
7e8648
 	fi
7e8648
-
7e8648
-	$FILE_CMD "+{{{ VALUE }}}" "$LOG_FILE_PATH"
7e8648
+	$FILE_CMD "{{{ VALUE }}}" "$LOG_FILE_PATH"
7e8648
 done
7e8648
diff --git a/shared/templates/rsyslog_logfiles_attributes_modify/oval.template b/shared/templates/rsyslog_logfiles_attributes_modify/oval.template
7e8648
index 4f288df1c9..243d678852 100644
7e8648
--- a/shared/templates/rsyslog_logfiles_attributes_modify/oval.template
7e8648
+++ b/shared/templates/rsyslog_logfiles_attributes_modify/oval.template
7e8648
@@ -3,59 +3,57 @@
7e8648
     {{{ oval_metadata("All syslog log files should have appropriate ownership.") }}}
7e8648
     <criteria operator="AND">
7e8648
       {{% if product in ["debian10", "debian11", "ubuntu1604"] %}}
7e8648
-      
7e8648
-      definition_ref="package_rsyslog_installed" />
7e8648
+      
7e8648
+        comment="rsyslog daemon is used as local logging daemon"/>
7e8648
       {{% endif %}}
7e8648
-      
7e8648
-      {{{ ATTRIBUTE  }}}" test_ref="test_{{{ _RULE_ID }}}" />
7e8648
+      
7e8648
+        comment="Check if all system log files have appropriate {{{ ATTRIBUTE }}} set"/>
7e8648
     </criteria>
7e8648
-
7e8648
   </definition>
7e8648
 
7e8648
-  
7e8648
-  v8.33.0) values.  -->
7e8648
-  
7e8648
-  
7e8648
-       comment="rsyslog's $IncludeConfig directive and include() object values" version="1">
7e8648
+  
7e8648
+       The last was introduced in rsyslog v8.33.0). -->
7e8648
+  
7e8648
+       comment="rsyslog's $IncludeConfig and include() statements values.">
7e8648
     <ind:filepath>/etc/rsyslog.conf</ind:filepath>
7e8648
     
7e8648
-    operation="pattern match">^(?:include\([\n\s]*file="([^\s;]+)".*|\$IncludeConfig[\s]+([^\s;]+))$</ind:pattern>
7e8648
+      operation="pattern match">^(?:include\([\n\s]*file="([^\s;]+)".*|\$IncludeConfig[\s]+([^\s;]+))$</ind:pattern>
7e8648
     <ind:instance datatype="int" operation="greater than or equal">1</ind:instance>
7e8648
   </ind:textfilecontent54_object>
7e8648
 
7e8648
   
7e8648
   
7e8648
-  comment="$IncludeConfig value converted to regex">
7e8648
+    comment="rsyslog's include config values converted to regex.">
7e8648
     <unique>
7e8648
       <glob_to_regex>
7e8648
         
7e8648
-                          object_ref="object_{{{ _RULE_ID }}}_include_config_value" />
7e8648
+          object_ref="object_{{{ _RULE_ID }}}_include_config_value"/>
7e8648
       </glob_to_regex>
7e8648
     </unique>
7e8648
   </local_variable>
7e8648
 
7e8648
-  
7e8648
-       If the variable has no values, there won't be any objects -->
7e8648
-  
7e8648
-                       comment="Make variable object from regex variable" version="1">
7e8648
+  
7e8648
+       If the variable has no values, there won't be any objects. -->
7e8648
+  
7e8648
+    comment="Make variable object from regex variable.">
7e8648
     <ind:var_ref>var_{{{ _RULE_ID }}}_include_config_regex</ind:var_ref>
7e8648
   </ind:variable_object>
7e8648
 
7e8648
-  
7e8648
-                  version="1" comment="Locations of all rsyslog configuration files as collection">
7e8648
+  
7e8648
+    comment="Main rsyslog configuration file.">
7e8648
     <literal_component datatype="string">^/etc/rsyslog.conf$</literal_component>
7e8648
   </local_variable>
7e8648
 
7e8648
-  
7e8648
-                       comment="Make variable object for use" version="1">
7e8648
+  
7e8648
+    comment="Make variable object from local variable.">
7e8648
     <ind:var_ref>var_{{{ _RULE_ID }}}_syslog_config</ind:var_ref>
7e8648
   </ind:variable_object>
7e8648
 
7e8648
-  
7e8648
-       We do it this way to avoid referencing an empty variable in a state comparison, which
7e8648
-       will cause a test to evaluate to fail. Combining an empty set of objects is fine though -->
7e8648
-  
7e8648
-                       comment="Filter out empty string" version="1">
7e8648
+  
7e8648
+       We do it this way to avoid referencing an empty variable in a state comparison, which will
7e8648
+       cause a test to evaluate to fail. Combining an empty set of objects is fine though. -->
7e8648
+  
7e8648
+    comment="Variable containing all rsyslog configuration files.">
7e8648
     <set>
7e8648
       <object_reference>object_var_{{{ _RULE_ID }}}_include_config_regex</object_reference>
7e8648
       <object_reference>object_var_{{{ _RULE_ID }}}_syslog_config</object_reference>
7e8648
@@ -64,74 +62,72 @@
7e8648
 
7e8648
   
7e8648
        a list of objects won't do. So we make a local_variable from the variable_objects. -->
7e8648
-  
7e8648
-                  comment="Locations of all rsyslog configuration files as collection">
7e8648
-    <object_component object_ref="object_var_{{{ _RULE_ID }}}_all_log_files" item_field="value"/>
7e8648
+  
7e8648
+    comment="Locations of all rsyslog configuration files as collection.">
7e8648
+    <object_component object_ref="object_var_{{{ _RULE_ID }}}_all_conf_files" item_field="value"/>
7e8648
   </local_variable>
7e8648
 
7e8648
-  
7e8648
-       that rsyslog's configuration file to select file paths for log files directives
7e8648
-  -->
7e8648
-  
7e8648
-                                comment="All rsyslog configuration files" version="1">
7e8648
-    
7e8648
-                  var_check="at least one" />
7e8648
-    
7e8648
-         to constitute a log file path if all of the following conditions are met:
7e8648
-         * the string represents a regular file on particular file system
7e8648
-           (verified via corresponding file_state below),
7e8648
-         * the chunk of text is in the last column in the row,
7e8648
-           (possibly suffixed by ';' character and rsyslog Template name),
7e8648
-         * contains at least one slash '/' character, and simultaneously
7e8648
-           doesn't contain any of ';', ':' and space characters,
7e8648
-         * the chunk was retrieved from a row not starting with space, '#',
7e8648
-           or '$' characters
7e8648
-    -->
7e8648
-    
7e8648
-     operation="pattern match">^\s*[^(\s|#|\$)]+\s+-?[\w\(="\s]*(\/[^:;\s"]+)+.*$</ind:pattern>
7e8648
+  
7e8648
+       that rsyslog's configuration files to select file paths for log files directives -->
7e8648
+  
7e8648
+    comment="All rsyslog log files collected from rsyslog configuration files." >
7e8648
+    
7e8648
+      var_ref="var_{{{ _RULE_ID }}}_all_conf_files"/>
7e8648
+      
7e8648
+           a log file path if all of the following conditions are met:
7e8648
+            * the string represents a regular file on particular file system
7e8648
+              (verified via corresponding file_state below),
7e8648
+            * the chunk of text is in the last column in the row,
7e8648
+              (possibly suffixed by ';' character and rsyslog Template name),
7e8648
+            * contains at least one slash '/' character, and simultaneously doesn't contain any
7e8648
+              of ';', ':' and space characters,
7e8648
+            * the chunk was retrieved from a row not starting with space, '#', or '$' characters
7e8648
+      -->
7e8648
+    
7e8648
+      operation="pattern match">^\s*[^(\s|#|\$)]+\s+.*\s+-?[\w\(="\s]*(\/[^:;\s"]+)+.*$</ind:pattern>
7e8648
     <ind:instance datatype="int" operation="greater than or equal">1</ind:instance>
7e8648
-    <filter action="exclude">state_{{{ _RULE_ID }}}_ownership_ignore_include_paths</filter>
7e8648
+    <filter action="exclude">state_{{{ _RULE_ID }}}_ignore_include_paths</filter>
7e8648
   </ind:textfilecontent54_object>
7e8648
 
7e8648
-  
7e8648
-                               comment="ignore" version="1">
7e8648
-    
7e8648
-         include() or $IncludeConfig statements.
7e8648
-         These paths are conf files, not log files. Their groupownership don't need to be as
7e8648
-         required for log files, thus, lets exclude them from the list of objects found
7e8648
-    -->
7e8648
+  
7e8648
+    comment="ignore" version="1">
7e8648
+    
7e8648
+         from include() or $IncludeConfig statements. These paths are conf files, not log files.
7e8648
+         Their properties don't need to be as required for log files, thus, lets exclude them
7e8648
+         from the list of objects found. -->
7e8648
     
7e8648
     operation="pattern match">(?:file="[^\s;]+"|\$IncludeConfig[\s]+[^\s;]+|\/dev\/.*)</ind:text>
7e8648
   </ind:textfilecontent54_state>
7e8648
 
7e8648
   
7e8648
-       retrieved from the different rsyslog configuration files
7e8648
-  -->
7e8648
+       retrieved from the different rsyslog configuration files. -->
7e8648
   
7e8648
-                  comment="File paths of all rsyslog configuration files">
7e8648
-    <object_component item_field="subexpression" object_ref="object_{{{ _RULE_ID }}}_log_files_paths" />
7e8648
+    comment="File paths of all rsyslog log files">
7e8648
+    
7e8648
+      object_ref="object_{{{ _RULE_ID }}}_log_files_paths" />
7e8648
   </local_variable>
7e8648
 
7e8648
-  
7e8648
-  
7e8648
-                  comment="System log files are owned by the appropriate group">
7e8648
-    <unix:object object_ref="object_rsyslog_files_{{{ _RULE_ID }}}_ownership" />
7e8648
+  
7e8648
+  
7e8648
+    comment="System log files have appropriate {{{ ATTRIBUTE }}} set">
7e8648
+    <unix:object object_ref="object_{{{ _RULE_ID }}}_{{{ ATTRIBUTE }}}" />
7e8648
     <unix:state state_ref="state_{{{ _RULE_ID }}}" />
7e8648
   </unix:file_test>
7e8648
 
7e8648
-  
7e8648
-                    comment="Various system log files" version="1">
7e8648
-    
7e8648
-                   var_check="at least one" />
7e8648
+  
7e8648
+    comment="All system log files collected from rsyslog configuration files">
7e8648
+    
7e8648
+      var_ref="var_{{{ _RULE_ID }}}_log_files_paths"/>
7e8648
   </unix:file_object>
7e8648
 
7e8648
   <unix:file_state id="state_{{{ _RULE_ID }}}" version="1">
7e8648
     <unix:type operation="equals">regular</unix:type>
7e8648
     {{% if ATTRIBUTE == "groupowner" %}}
7e8648
     <unix:group_id datatype="int">{{{ VALUE }}}</unix:group_id>
7e8648
-    {{% else %}}
7e8648
+    {{% elif ATTRIBUTE == "owner" %}}
7e8648
     <unix:user_id datatype="int">{{{ VALUE }}}</unix:user_id>
7e8648
+    {{% else %}}
7e8648
+    {{{ STATEMODE | indent(4) }}}
7e8648
    {{% endif %}}
7e8648
   </unix:file_state>
7e8648
-
7e8648
 </def-group>
7e8648
diff --git a/shared/templates/rsyslog_logfiles_attributes_modify/template.py b/shared/templates/rsyslog_logfiles_attributes_modify/template.py
7e8648
new file mode 100644
7e8648
index 0000000000..9ea31c9a6b
7e8648
--- /dev/null
7e8648
+++ b/shared/templates/rsyslog_logfiles_attributes_modify/template.py
7e8648
@@ -0,0 +1,18 @@
7e8648
+def preprocess(data, lang):
7e8648
+    if lang == "oval" and data["attribute"] == 'permissions':
7e8648
+        # create STATEMODE used in the OVAL template by processing the octal permission and
7e8648
+        # creating the equivalent permission fields of "unix:file_state" element.
7e8648
+        mode = data["value"]
7e8648
+        fields = [
7e8648
+            'oexec', 'owrite', 'oread', 'gexec', 'gwrite', 'gread',
7e8648
+            'uexec', 'uwrite', 'uread', 'sticky', 'sgid', 'suid']
7e8648
+        mode_int = int(mode, 8)
7e8648
+        mode_str = ""
7e8648
+        for field in fields:
7e8648
+            if mode_int & 0x01 == 0:
7e8648
+                mode_str = (
7e8648
+                    "<unix:{field} datatype=\"boolean\">false</unix:{field}>\n{mode_str}".format(
7e8648
+                        field=field, mode_str=mode_str))
7e8648
+            mode_int = mode_int >> 1
7e8648
+        data["statemode"] = mode_str.rstrip("\n")
7e8648
+    return data
7e8648
diff --git a/shared/templates/rsyslog_logfiles_attributes_modify/tests/IncludeConfig_is_other.fail.sh b/shared/templates/rsyslog_logfiles_attributes_modify/tests/IncludeConfig_is_other.fail.sh
7e8648
deleted file mode 100755
7e8648
index db7e5261eb..0000000000
7e8648
--- a/shared/templates/rsyslog_logfiles_attributes_modify/tests/IncludeConfig_is_other.fail.sh
7e8648
+++ /dev/null
7e8648
@@ -1,50 +0,0 @@
7e8648
-#!/bin/bash
7e8648
-# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_sle
7e8648
-
7e8648
-# Check rsyslog.conf with root user log from rules and
7e8648
-# non root user log from $IncludeConfig fails.
7e8648
-
7e8648
-source $SHARED/rsyslog_log_utils.sh
7e8648
-
7e8648
-{{% if ATTRIBUTE == "owner" %}}
7e8648
-ADDCOMMAND="useradd"
7e8648
-CHATTR="chown"
7e8648
-{{% else %}}
7e8648
-ADDCOMMAND="groupadd"
7e8648
-CHATTR="chgrp"
7e8648
-{{% endif %}}
7e8648
-
7e8648
-USER_TEST=testssg
7e8648
-$ADDCOMMAND $USER_TEST
7e8648
-
7e8648
-USER_ROOT=root
7e8648
-
7e8648
-# setup test data
7e8648
-create_rsyslog_test_logs 2
7e8648
-
7e8648
-# setup test log files ownership
7e8648
-$CHATTR $USER_ROOT ${RSYSLOG_TEST_LOGS[0]}
7e8648
-$CHATTR $USER_TEST ${RSYSLOG_TEST_LOGS[1]}
7e8648
-
7e8648
-# create test configuration file
7e8648
-test_conf=${RSYSLOG_TEST_DIR}/test1.conf
7e8648
-cat << EOF > ${test_conf}
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[1]}
7e8648
-EOF
7e8648
-
7e8648
-# create rsyslog.conf configuration file
7e8648
-cat << EOF > $RSYSLOG_CONF
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*      ${RSYSLOG_TEST_LOGS[0]}
7e8648
-
7e8648
-#### MODULES ####
7e8648
-
7e8648
-\$IncludeConfig ${test_conf}
7e8648
-EOF
7e8648
diff --git a/shared/templates/rsyslog_logfiles_attributes_modify/tests/include_is_other.fail.sh b/shared/templates/rsyslog_logfiles_attributes_modify/tests/include_is_other.fail.sh
7e8648
deleted file mode 100755
7e8648
index d79ae23cfc..0000000000
7e8648
--- a/shared/templates/rsyslog_logfiles_attributes_modify/tests/include_is_other.fail.sh
7e8648
+++ /dev/null
7e8648
@@ -1,50 +0,0 @@
7e8648
-#!/bin/bash
7e8648
-# platform = Red Hat Enterprise Linux 8,multi_platform_fedora,Oracle Linux 8,multi_platform_sle
7e8648
-
7e8648
-# Check rsyslog.conf with root user log from rules and
7e8648
-# non root user log from include() fails.
7e8648
-
7e8648
-source $SHARED/rsyslog_log_utils.sh
7e8648
-
7e8648
-{{% if ATTRIBUTE == "owner" %}}
7e8648
-ADDCOMMAND="useradd"
7e8648
-CHATTR="chown"
7e8648
-{{% else %}}
7e8648
-ADDCOMMAND="groupadd"
7e8648
-CHATTR="chgrp"
7e8648
-{{% endif %}}
7e8648
-
7e8648
-USER_TEST=testssg
7e8648
-$ADDCOMMAND $USER_TEST
7e8648
-
7e8648
-USER_ROOT=root
7e8648
-
7e8648
-# setup test data
7e8648
-create_rsyslog_test_logs 2
7e8648
-
7e8648
-# setup test log files ownership
7e8648
-$CHATTR $USER_ROOT ${RSYSLOG_TEST_LOGS[0]}
7e8648
-$CHATTR $USER_TEST ${RSYSLOG_TEST_LOGS[1]}
7e8648
-
7e8648
-# create test configuration file
7e8648
-test_conf=${RSYSLOG_TEST_DIR}/test1.conf
7e8648
-cat << EOF > ${test_conf}
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[1]}
7e8648
-EOF
7e8648
-
7e8648
-# create rsyslog.conf configuration file
7e8648
-cat << EOF > $RSYSLOG_CONF
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*      ${RSYSLOG_TEST_LOGS[0]}
7e8648
-
7e8648
-#### MODULES ####
7e8648
-
7e8648
-include(file="${test_conf}")
7e8648
-EOF
7e8648
diff --git a/shared/templates/rsyslog_logfiles_attributes_modify/tests/include_is_other_IncludeConfig_is_other_RainerLogClause.fail.sh b/shared/templates/rsyslog_logfiles_attributes_modify/tests/include_is_other_IncludeConfig_is_other_RainerLogClause.fail.sh
7e8648
deleted file mode 100644
7e8648
index 7869a180a8..0000000000
7e8648
--- a/shared/templates/rsyslog_logfiles_attributes_modify/tests/include_is_other_IncludeConfig_is_other_RainerLogClause.fail.sh
7e8648
+++ /dev/null
7e8648
@@ -1,75 +0,0 @@
7e8648
-#!/bin/bash
7e8648
-# platform = Red Hat Enterprise Linux 8,multi_platform_fedora,Oracle Linux 8,multi_platform_sle
7e8648
-
7e8648
-# Check rsyslog.conf with root user log from rules and
7e8648
-# root user log from include() passes.
7e8648
-
7e8648
-source $SHARED/rsyslog_log_utils.sh
7e8648
-
7e8648
-{{% if ATTRIBUTE == "owner" %}}
7e8648
-ADDCOMMAND="useradd"
7e8648
-CHATTR="chown"
7e8648
-{{% else %}}
7e8648
-ADDCOMMAND="groupadd"
7e8648
-CHATTR="chgrp"
7e8648
-{{% endif %}}
7e8648
-
7e8648
-USER_TEST=testssg
7e8648
-$ADDCOMMAND $USER_TEST
7e8648
-
7e8648
-USER=root
7e8648
-
7e8648
-# setup test data
7e8648
-create_rsyslog_test_logs 3
7e8648
-
7e8648
-# setup test log files ownership
7e8648
-$CHATTR $USER_TEST ${RSYSLOG_TEST_LOGS[0]}
7e8648
-$CHATTR $USER_TEST ${RSYSLOG_TEST_LOGS[1]}
7e8648
-$CHATTR $USER_TEST ${RSYSLOG_TEST_LOGS[2]}
7e8648
-
7e8648
-# create test configuration file
7e8648
-test_conf=${RSYSLOG_TEST_DIR}/test1.conf
7e8648
-cat << EOF > ${test_conf}
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[1]}
7e8648
-EOF
7e8648
-
7e8648
-# create test2 configuration file
7e8648
-test_conf2=${RSYSLOG_TEST_DIR}/test2.conf
7e8648
-{{% if ATTRIBUTE == "owner" %}}
7e8648
-cat << EOF > ${test_conf2}
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-
7e8648
-*.*     action(type="omfile" FileCreateMode="0640" fileOwner="$USER_TEST" fileGroup="root" File="${RSYSLOG_TEST_LOGS[2]}")
7e8648
-EOF
7e8648
-{{% else %}}
7e8648
-cat << EOF > ${test_conf2}
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-
7e8648
-*.*     action(type="omfile" FileCreateMode="0640" fileOwner="root" fileGroup="$USER_TEST" File="${RSYSLOG_TEST_LOGS[2]}")
7e8648
-EOF
7e8648
-{{% endif %}}
7e8648
-
7e8648
-# create rsyslog.conf configuration file
7e8648
-cat << EOF > $RSYSLOG_CONF
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[0]}
7e8648
-
7e8648
-#### MODULES ####
7e8648
-
7e8648
-include(file="${test_conf}")
7e8648
-
7e8648
-\$IncludeConfig ${test_conf2}
7e8648
-EOF
7e8648
diff --git a/shared/templates/rsyslog_logfiles_attributes_modify/tests/include_is_root.pass.sh b/shared/templates/rsyslog_logfiles_attributes_modify/tests/include_is_root.pass.sh
7e8648
deleted file mode 100755
7e8648
index e80395ca99..0000000000
7e8648
--- a/shared/templates/rsyslog_logfiles_attributes_modify/tests/include_is_root.pass.sh
7e8648
+++ /dev/null
7e8648
@@ -1,46 +0,0 @@
7e8648
-#!/bin/bash
7e8648
-# platform = Red Hat Enterprise Linux 8,multi_platform_fedora,Oracle Linux 8,multi_platform_sle
7e8648
-
7e8648
-# Check rsyslog.conf with root user log from rules and
7e8648
-# root user log from include() passes.
7e8648
-
7e8648
-source $SHARED/rsyslog_log_utils.sh
7e8648
-
7e8648
-
7e8648
-{{% if ATTRIBUTE == "owner" %}}
7e8648
-CHATTR="chown"
7e8648
-{{% else %}}
7e8648
-CHATTR="chgrp"
7e8648
-{{% endif %}}
7e8648
-
7e8648
-USER=root
7e8648
-
7e8648
-# setup test data
7e8648
-create_rsyslog_test_logs 2
7e8648
-
7e8648
-# setup test log files ownership
7e8648
-$CHATTR $USER ${RSYSLOG_TEST_LOGS[0]}
7e8648
-$CHATTR $USER ${RSYSLOG_TEST_LOGS[1]}
7e8648
-
7e8648
-# create test configuration file
7e8648
-test_conf=${RSYSLOG_TEST_DIR}/test1.conf
7e8648
-cat << EOF > ${test_conf}
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[1]}
7e8648
-EOF
7e8648
-
7e8648
-# create rsyslog.conf configuration file
7e8648
-cat << EOF > $RSYSLOG_CONF
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[0]}
7e8648
-
7e8648
-#### MODULES ####
7e8648
-
7e8648
-include(file="${test_conf}")
7e8648
-EOF
7e8648
diff --git a/shared/templates/rsyslog_logfiles_attributes_modify/tests/include_is_root_IncludeConfig_is_other.fail.sh b/shared/templates/rsyslog_logfiles_attributes_modify/tests/include_is_root_IncludeConfig_is_other.fail.sh
7e8648
deleted file mode 100755
7e8648
index e7b4905dc5..0000000000
7e8648
--- a/shared/templates/rsyslog_logfiles_attributes_modify/tests/include_is_root_IncludeConfig_is_other.fail.sh
7e8648
+++ /dev/null
7e8648
@@ -1,63 +0,0 @@
7e8648
-#!/bin/bash
7e8648
-# platform = Red Hat Enterprise Linux 8,multi_platform_fedora,Oracle Linux 8,multi_platform_sle
7e8648
-
7e8648
-# Check rsyslog.conf with root user log from rules and
7e8648
-# non root user log from include() fails.
7e8648
-
7e8648
-source $SHARED/rsyslog_log_utils.sh
7e8648
-
7e8648
-{{% if ATTRIBUTE == "owner" %}}
7e8648
-ADDCOMMAND="useradd"
7e8648
-CHATTR="chown"
7e8648
-{{% else %}}
7e8648
-ADDCOMMAND="groupadd"
7e8648
-CHATTR="chgrp"
7e8648
-{{% endif %}}
7e8648
-
7e8648
-USER_ROOT=root
7e8648
-
7e8648
-USER_TEST=testssg
7e8648
-$ADDCOMMAND $USER_TEST
7e8648
-
7e8648
-# setup test data
7e8648
-create_rsyslog_test_logs 3
7e8648
-
7e8648
-# setup test log files ownership
7e8648
-$CHATTR $USER_ROOT ${RSYSLOG_TEST_LOGS[0]}
7e8648
-$CHATTR $USER_ROOT ${RSYSLOG_TEST_LOGS[1]}
7e8648
-$CHATTR $USER_TEST ${RSYSLOG_TEST_LOGS[2]}
7e8648
-
7e8648
-# create test configuration file
7e8648
-test_conf=${RSYSLOG_TEST_DIR}/test1.conf
7e8648
-cat << EOF > ${test_conf}
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[1]}
7e8648
-EOF
7e8648
-
7e8648
-# create test2 configuration file
7e8648
-test_conf2=${RSYSLOG_TEST_DIR}/test2.conf
7e8648
-cat << EOF > ${test_conf2}
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[2]}
7e8648
-EOF
7e8648
-
7e8648
-# create rsyslog.conf configuration file
7e8648
-cat << EOF > $RSYSLOG_CONF
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[0]}
7e8648
-
7e8648
-#### MODULES ####
7e8648
-
7e8648
-include(file="${test_conf}")
7e8648
-
7e8648
-\$IncludeConfig ${test_conf2}
7e8648
-EOF
7e8648
diff --git a/shared/templates/rsyslog_logfiles_attributes_modify/tests/include_is_root_IncludeConfig_is_root.pass.sh b/shared/templates/rsyslog_logfiles_attributes_modify/tests/include_is_root_IncludeConfig_is_root.pass.sh
7e8648
deleted file mode 100755
7e8648
index 6389e6ea3b..0000000000
7e8648
--- a/shared/templates/rsyslog_logfiles_attributes_modify/tests/include_is_root_IncludeConfig_is_root.pass.sh
7e8648
+++ /dev/null
7e8648
@@ -1,58 +0,0 @@
7e8648
-#!/bin/bash
7e8648
-# platform = Red Hat Enterprise Linux 8,multi_platform_fedora,Oracle Linux 8,multi_platform_sle
7e8648
-
7e8648
-# Check rsyslog.conf with root user log from rules and
7e8648
-# root user log from include() passes.
7e8648
-
7e8648
-source $SHARED/rsyslog_log_utils.sh
7e8648
-
7e8648
-{{% if ATTRIBUTE == "owner" %}}
7e8648
-CHATTR="chown"
7e8648
-{{% else %}}
7e8648
-CHATTR="chgrp"
7e8648
-{{% endif %}}
7e8648
-
7e8648
-USER=root
7e8648
-
7e8648
-# setup test data
7e8648
-create_rsyslog_test_logs 3
7e8648
-
7e8648
-# setup test log files ownership
7e8648
-$CHATTR $USER ${RSYSLOG_TEST_LOGS[0]}
7e8648
-$CHATTR $USER ${RSYSLOG_TEST_LOGS[1]}
7e8648
-$CHATTR $USER ${RSYSLOG_TEST_LOGS[2]}
7e8648
-
7e8648
-# create test configuration file
7e8648
-test_conf=${RSYSLOG_TEST_DIR}/test1.conf
7e8648
-cat << EOF > ${test_conf}
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[1]}
7e8648
-EOF
7e8648
-
7e8648
-# create test2 configuration file
7e8648
-test_conf2=${RSYSLOG_TEST_DIR}/test2.conf
7e8648
-cat << EOF > ${test_conf2}
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[2]}
7e8648
-EOF
7e8648
-
7e8648
-# create rsyslog.conf configuration file
7e8648
-cat << EOF > $RSYSLOG_CONF
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[0]}
7e8648
-
7e8648
-#### MODULES ####
7e8648
-
7e8648
-include(file="${test_conf}")
7e8648
-
7e8648
-\$IncludeConfig ${test_conf2}
7e8648
-EOF
7e8648
diff --git a/shared/templates/rsyslog_logfiles_attributes_modify/tests/include_is_root_IncludeConfig_is_root_RainerLogClause.pass.sh b/shared/templates/rsyslog_logfiles_attributes_modify/tests/include_is_root_IncludeConfig_is_root_RainerLogClause.pass.sh
7e8648
deleted file mode 100755
7e8648
index 6b81a77c2f..0000000000
7e8648
--- a/shared/templates/rsyslog_logfiles_attributes_modify/tests/include_is_root_IncludeConfig_is_root_RainerLogClause.pass.sh
7e8648
+++ /dev/null
7e8648
@@ -1,59 +0,0 @@
7e8648
-#!/bin/bash
7e8648
-# platform = Red Hat Enterprise Linux 8,multi_platform_fedora,Oracle Linux 8,multi_platform_sle
7e8648
-
7e8648
-# Check rsyslog.conf with root user log from rules and
7e8648
-# root user log from include() passes.
7e8648
-
7e8648
-source $SHARED/rsyslog_log_utils.sh
7e8648
-
7e8648
-{{% if ATTRIBUTE == "owner" %}}
7e8648
-CHATTR="chown"
7e8648
-{{% else %}}
7e8648
-CHATTR="chgrp"
7e8648
-{{% endif %}}
7e8648
-
7e8648
-USER=root
7e8648
-
7e8648
-# setup test data
7e8648
-create_rsyslog_test_logs 3
7e8648
-
7e8648
-# setup test log files ownership
7e8648
-$CHATTR $USER ${RSYSLOG_TEST_LOGS[0]}
7e8648
-$CHATTR $USER ${RSYSLOG_TEST_LOGS[1]}
7e8648
-$CHATTR $USER ${RSYSLOG_TEST_LOGS[2]}
7e8648
-
7e8648
-# create test configuration file
7e8648
-test_conf=${RSYSLOG_TEST_DIR}/test1.conf
7e8648
-cat << EOF > ${test_conf}
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[1]}
7e8648
-EOF
7e8648
-
7e8648
-# create test2 configuration file
7e8648
-test_conf2=${RSYSLOG_TEST_DIR}/test2.conf
7e8648
-cat << EOF > ${test_conf2}
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-
7e8648
-*.*     action(type="omfile" FileCreateMode="0640" fileOwner="root" fileGroup="root" File="${RSYSLOG_TEST_LOGS[2]}")
7e8648
-EOF
7e8648
-
7e8648
-# create rsyslog.conf configuration file
7e8648
-cat << EOF > $RSYSLOG_CONF
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[0]}
7e8648
-
7e8648
-#### MODULES ####
7e8648
-
7e8648
-include(file="${test_conf}")
7e8648
-
7e8648
-\$IncludeConfig ${test_conf2}
7e8648
-EOF
7e8648
diff --git a/shared/templates/rsyslog_logfiles_attributes_modify/tests/include_multiline_is_root.pass.sh b/shared/templates/rsyslog_logfiles_attributes_modify/tests/include_multiline_is_root.pass.sh
7e8648
deleted file mode 100755
7e8648
index 78b105abf3..0000000000
7e8648
--- a/shared/templates/rsyslog_logfiles_attributes_modify/tests/include_multiline_is_root.pass.sh
7e8648
+++ /dev/null
7e8648
@@ -1,47 +0,0 @@
7e8648
-#!/bin/bash
7e8648
-# platform = Red Hat Enterprise Linux 8,multi_platform_fedora,Oracle Linux 8,multi_platform_sle
7e8648
-
7e8648
-# Check rsyslog.conf with root user log from rules and
7e8648
-# root user log from multiline include() passes.
7e8648
-
7e8648
-source $SHARED/rsyslog_log_utils.sh
7e8648
-
7e8648
-{{% if ATTRIBUTE == "owner" %}}
7e8648
-CHATTR="chown"
7e8648
-{{% else %}}
7e8648
-CHATTR="chgrp"
7e8648
-{{% endif %}}
7e8648
-
7e8648
-USER=root
7e8648
-
7e8648
-# setup test data
7e8648
-create_rsyslog_test_logs 2
7e8648
-
7e8648
-# setup test log files ownership
7e8648
-$CHATTR $USER ${RSYSLOG_TEST_LOGS[0]}
7e8648
-$CHATTR $USER ${RSYSLOG_TEST_LOGS[1]}
7e8648
-
7e8648
-# create test configuration file
7e8648
-test_conf=${RSYSLOG_TEST_DIR}/test1.conf
7e8648
-cat << EOF > ${test_conf}
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[1]}
7e8648
-EOF
7e8648
-
7e8648
-# create rsyslog.conf configuration file
7e8648
-cat << EOF > $RSYSLOG_CONF
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*     ${RSYSLOG_TEST_LOGS[0]}
7e8648
-
7e8648
-#### MODULES ####
7e8648
-
7e8648
-include(
7e8648
-   file="${test_conf}"
7e8648
-)
7e8648
-EOF
7e8648
diff --git a/shared/templates/rsyslog_logfiles_attributes_modify/tests/is_root.pass.sh b/shared/templates/rsyslog_logfiles_attributes_modify/tests/is_root.pass.sh
7e8648
deleted file mode 100755
7e8648
index afce21fa27..0000000000
7e8648
--- a/shared/templates/rsyslog_logfiles_attributes_modify/tests/is_root.pass.sh
7e8648
+++ /dev/null
7e8648
@@ -1,30 +0,0 @@
7e8648
-#!/bin/bash
7e8648
-# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_sle
7e8648
-
7e8648
-# Check if log file with root user in rsyslog.conf passes.
7e8648
-
7e8648
-source $SHARED/rsyslog_log_utils.sh
7e8648
-
7e8648
-{{% if ATTRIBUTE == "owner" %}}
7e8648
-CHATTR="chown"
7e8648
-{{% else %}}
7e8648
-CHATTR="chgrp"
7e8648
-{{% endif %}}
7e8648
-
7e8648
-USER=root
7e8648
-
7e8648
-# setup test data
7e8648
-create_rsyslog_test_logs 1
7e8648
-
7e8648
-# setup test log file ownership
7e8648
-$CHATTR $USER ${RSYSLOG_TEST_LOGS[0]}
7e8648
-
7e8648
-# add rule with root user owned log file
7e8648
-cat << EOF > $RSYSLOG_CONF
7e8648
-# rsyslog configuration file
7e8648
-
7e8648
-#### RULES ####
7e8648
-
7e8648
-*.*        ${RSYSLOG_TEST_LOGS[0]}
7e8648
-
7e8648
-EOF
7e8648
diff --git a/shared/templates/rsyslog_logfiles_attributes_modify/tests/is_other.fail.sh b/shared/templates/rsyslog_logfiles_attributes_modify/tests/legacy_correct_attr.pass.sh
7e8648
similarity index 53%
7e8648
rename from shared/templates/rsyslog_logfiles_attributes_modify/tests/is_other.fail.sh
7e8648
rename to shared/templates/rsyslog_logfiles_attributes_modify/tests/legacy_correct_attr.pass.sh
7e8648
index 1afe20823c..dc362ae003 100755
7e8648
--- a/shared/templates/rsyslog_logfiles_attributes_modify/tests/is_other.fail.sh
7e8648
+++ b/shared/templates/rsyslog_logfiles_attributes_modify/tests/legacy_correct_attr.pass.sh
7e8648
@@ -1,33 +1,31 @@
7e8648
 #!/bin/bash
7e8648
 # platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_sle
7e8648
 
7e8648
-# Check if log file with non root user in rsyslog.conf fails.
7e8648
-
7e8648
+# Declare variables used for the tests and define the create_rsyslog_test_logs function
7e8648
 source $SHARED/rsyslog_log_utils.sh
7e8648
 
7e8648
 {{% if ATTRIBUTE == "owner" %}}
7e8648
-ADDCOMMAND="useradd"
7e8648
 CHATTR="chown"
7e8648
-{{% else %}}
7e8648
-ADDCOMMAND="groupadd"
7e8648
+ATTR_VALUE="root"
7e8648
+{{% elif ATTRIBUTE == "groupowner" %}}
7e8648
 CHATTR="chgrp"
7e8648
+ATTR_VALUE="root"
7e8648
+{{% else %}}
7e8648
+CHATTR="chmod"
7e8648
+ATTR_VALUE="0600"
7e8648
 {{% endif %}}
7e8648
 
7e8648
-USER=testssg
7e8648
-
7e8648
-$ADDCOMMAND $USER
7e8648
-
7e8648
-# setup test data
7e8648
+# create one test log file
7e8648
 create_rsyslog_test_logs 1
7e8648
 
7e8648
-# setup test log file ownership
7e8648
-$CHATTR $USER ${RSYSLOG_TEST_LOGS[0]}
7e8648
+# setup test log file property
7e8648
+$CHATTR $ATTR_VALUE ${RSYSLOG_TEST_LOGS[0]}
7e8648
 
7e8648
-# add rule with non-root user owned log file
7e8648
+# add rule with test log file
7e8648
 cat << EOF > $RSYSLOG_CONF
7e8648
 # rsyslog configuration file
7e8648
 
7e8648
 #### RULES ####
7e8648
-
7e8648
 *.*     ${RSYSLOG_TEST_LOGS[0]}
7e8648
+
7e8648
 EOF
7e8648
diff --git a/shared/templates/rsyslog_logfiles_attributes_modify/tests/IncludeConfig_is_root.pass.sh b/shared/templates/rsyslog_logfiles_attributes_modify/tests/legacy_include_correct_attr.pass.sh
7e8648
similarity index 51%
7e8648
rename from shared/templates/rsyslog_logfiles_attributes_modify/tests/IncludeConfig_is_root.pass.sh
7e8648
rename to shared/templates/rsyslog_logfiles_attributes_modify/tests/legacy_include_correct_attr.pass.sh
7e8648
index b03268fe3e..c742f41039 100755
7e8648
--- a/shared/templates/rsyslog_logfiles_attributes_modify/tests/IncludeConfig_is_root.pass.sh
7e8648
+++ b/shared/templates/rsyslog_logfiles_attributes_modify/tests/legacy_include_correct_attr.pass.sh
7e8648
@@ -1,45 +1,45 @@
7e8648
 #!/bin/bash
7e8648
 # platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_sle
7e8648
 
7e8648
-# Check rsyslog.conf with root user log from rules and
7e8648
-# root user log from $IncludeConfig passes.
7e8648
-
7e8648
+# Declare variables used for the tests and define the create_rsyslog_test_logs function
7e8648
 source $SHARED/rsyslog_log_utils.sh
7e8648
 
7e8648
 {{% if ATTRIBUTE == "owner" %}}
7e8648
 CHATTR="chown"
7e8648
-{{% else %}}
7e8648
+ATTR_VALUE="root"
7e8648
+{{% elif ATTRIBUTE == "groupowner" %}}
7e8648
 CHATTR="chgrp"
7e8648
+ATTR_VALUE="root"
7e8648
+{{% else %}}
7e8648
+CHATTR="chmod"
7e8648
+ATTR_VALUE="0600"
7e8648
 {{% endif %}}
7e8648
 
7e8648
-USER=root
7e8648
-
7e8648
-# setup test data
7e8648
+# create two test log file
7e8648
 create_rsyslog_test_logs 2
7e8648
 
7e8648
-# setup test log files ownership
7e8648
-$CHATTR $USER ${RSYSLOG_TEST_LOGS[0]}
7e8648
-$CHATTR $USER ${RSYSLOG_TEST_LOGS[1]}
7e8648
+# setup test log file property
7e8648
+$CHATTR $ATTR_VALUE ${RSYSLOG_TEST_LOGS[0]}
7e8648
+$CHATTR $ATTR_VALUE ${RSYSLOG_TEST_LOGS[1]}
7e8648
 
7e8648
-# create test configuration file
7e8648
+# create test configuration file with rule for second test log file
7e8648
 test_conf=${RSYSLOG_TEST_DIR}/test1.conf
7e8648
 cat << EOF > ${test_conf}
7e8648
-# rsyslog configuration file
7e8648
+# rsyslog test configuration file
7e8648
 
7e8648
 #### RULES ####
7e8648
-
7e8648
 *.*     ${RSYSLOG_TEST_LOGS[1]}
7e8648
+
7e8648
 EOF
7e8648
 
7e8648
-# create rsyslog.conf configuration file
7e8648
+# add rule with first test log file plus an include statement
7e8648
 cat << EOF > $RSYSLOG_CONF
7e8648
 # rsyslog configuration file
7e8648
 
7e8648
 #### RULES ####
7e8648
-
7e8648
 *.*     ${RSYSLOG_TEST_LOGS[0]}
7e8648
 
7e8648
 #### MODULES ####
7e8648
-
7e8648
 \$IncludeConfig ${test_conf}
7e8648
+
7e8648
 EOF
7e8648
diff --git a/shared/templates/rsyslog_logfiles_attributes_modify/tests/legacy_include_incorrect_attr.fail.sh b/shared/templates/rsyslog_logfiles_attributes_modify/tests/legacy_include_incorrect_attr.fail.sh
7e8648
new file mode 100755
7e8648
index 0000000000..a12d0bc653
7e8648
--- /dev/null
7e8648
+++ b/shared/templates/rsyslog_logfiles_attributes_modify/tests/legacy_include_incorrect_attr.fail.sh
7e8648
@@ -0,0 +1,50 @@
7e8648
+#!/bin/bash
7e8648
+# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_sle
7e8648
+
7e8648
+# Declare variables used for the tests and define the create_rsyslog_test_logs function
7e8648
+source $SHARED/rsyslog_log_utils.sh
7e8648
+
7e8648
+{{% if ATTRIBUTE == "owner" %}}
7e8648
+CHATTR="chown"
7e8648
+ATTR_VALUE="root"
7e8648
+ATTR_INCORRECT_VALUE="cac_testuser"
7e8648
+useradd $ATTR_INCORRECT_VALUE
7e8648
+{{% elif ATTRIBUTE == "groupowner" %}}
7e8648
+CHATTR="chgrp"
7e8648
+ATTR_VALUE="root"
7e8648
+ATTR_INCORRECT_VALUE="cac_testgroup"
7e8648
+groupadd $ATTR_INCORRECT_VALUE
7e8648
+{{% else %}}
7e8648
+CHATTR="chmod"
7e8648
+ATTR_VALUE="0600"
7e8648
+ATTR_INCORRECT_VALUE="0666"
7e8648
+{{% endif %}}
7e8648
+
7e8648
+# create two test log file
7e8648
+create_rsyslog_test_logs 2
7e8648
+
7e8648
+# setup test log file property
7e8648
+$CHATTR $ATTR_VALUE ${RSYSLOG_TEST_LOGS[0]}
7e8648
+$CHATTR $ATTR_INCORRECT_VALUE ${RSYSLOG_TEST_LOGS[1]}
7e8648
+
7e8648
+# create test configuration file with rule for second test log file
7e8648
+test_conf=${RSYSLOG_TEST_DIR}/test1.conf
7e8648
+cat << EOF > ${test_conf}
7e8648
+# rsyslog test configuration file
7e8648
+
7e8648
+#### RULES ####
7e8648
+*.*     ${RSYSLOG_TEST_LOGS[1]}
7e8648
+
7e8648
+EOF
7e8648
+
7e8648
+# add rule with first test log file plus an include statement
7e8648
+cat << EOF > $RSYSLOG_CONF
7e8648
+# rsyslog configuration file
7e8648
+
7e8648
+#### RULES ####
7e8648
+*.*        ${RSYSLOG_TEST_LOGS[0]}
7e8648
+
7e8648
+#### MODULES ####
7e8648
+\$IncludeConfig ${test_conf}
7e8648
+
7e8648
+EOF
7e8648
diff --git a/shared/templates/rsyslog_logfiles_attributes_modify/tests/legacy_incorrect_attr.fail.sh b/shared/templates/rsyslog_logfiles_attributes_modify/tests/legacy_incorrect_attr.fail.sh
7e8648
new file mode 100755
7e8648
index 0000000000..25430db033
7e8648
--- /dev/null
7e8648
+++ b/shared/templates/rsyslog_logfiles_attributes_modify/tests/legacy_incorrect_attr.fail.sh
7e8648
@@ -0,0 +1,33 @@
7e8648
+#!/bin/bash
7e8648
+# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_sle
7e8648
+
7e8648
+# Declare variables used for the tests and define the create_rsyslog_test_logs function
7e8648
+source $SHARED/rsyslog_log_utils.sh
7e8648
+
7e8648
+{{% if ATTRIBUTE == "owner" %}}
7e8648
+CHATTR="chown"
7e8648
+ATTR_INCORRECT_VALUE="cac_testuser"
7e8648
+useradd $ATTR_INCORRECT_VALUE
7e8648
+{{% elif ATTRIBUTE == "groupowner" %}}
7e8648
+CHATTR="chgrp"
7e8648
+ATTR_INCORRECT_VALUE="cac_testgroup"
7e8648
+groupadd $ATTR_INCORRECT_VALUE
7e8648
+{{% else %}}
7e8648
+CHATTR="chmod"
7e8648
+ATTR_INCORRECT_VALUE="0666"
7e8648
+{{% endif %}}
7e8648
+
7e8648
+# create one test log file
7e8648
+create_rsyslog_test_logs 1
7e8648
+
7e8648
+# setup test log file property
7e8648
+$CHATTR $ATTR_INCORRECT_VALUE ${RSYSLOG_TEST_LOGS[0]}
7e8648
+
7e8648
+# add rule with non-root user owned log file
7e8648
+cat << EOF > $RSYSLOG_CONF
7e8648
+# rsyslog configuration file
7e8648
+
7e8648
+#### RULES ####
7e8648
+*.*     ${RSYSLOG_TEST_LOGS[0]}
7e8648
+
7e8648
+EOF
7e8648
diff --git a/shared/templates/rsyslog_logfiles_attributes_modify/tests/mixed_correct_attr.pass.sh b/shared/templates/rsyslog_logfiles_attributes_modify/tests/mixed_correct_attr.pass.sh
7e8648
new file mode 100755
7e8648
index 0000000000..c1c5758d80
7e8648
--- /dev/null
7e8648
+++ b/shared/templates/rsyslog_logfiles_attributes_modify/tests/mixed_correct_attr.pass.sh
7e8648
@@ -0,0 +1,33 @@
7e8648
+#!/bin/bash
7e8648
+# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_sle
7e8648
+
7e8648
+# Declare variables used for the tests and define the create_rsyslog_test_logs function
7e8648
+source $SHARED/rsyslog_log_utils.sh
7e8648
+
7e8648
+{{% if ATTRIBUTE == "owner" %}}
7e8648
+CHATTR="chown"
7e8648
+ATTR_VALUE="root"
7e8648
+{{% elif ATTRIBUTE == "groupowner" %}}
7e8648
+CHATTR="chgrp"
7e8648
+ATTR_VALUE="root"
7e8648
+{{% else %}}
7e8648
+CHATTR="chmod"
7e8648
+ATTR_VALUE="0600"
7e8648
+{{% endif %}}
7e8648
+
7e8648
+# create three test log file
7e8648
+create_rsyslog_test_logs 2
7e8648
+
7e8648
+# setup test log file property
7e8648
+$CHATTR $ATTR_VALUE ${RSYSLOG_TEST_LOGS[0]}
7e8648
+$CHATTR $ATTR_VALUE ${RSYSLOG_TEST_LOGS[1]}
7e8648
+
7e8648
+# add rules with both syntax for different test log files
7e8648
+cat << EOF > $RSYSLOG_CONF
7e8648
+# rsyslog configuration file
7e8648
+
7e8648
+#### RULES ####
7e8648
+*.*     ${RSYSLOG_TEST_LOGS[0]}
7e8648
+*.*     action(type="omfile" FileCreateMode="0640" fileOwner="root" fileGroup="hoiadm" File="${RSYSLOG_TEST_LOGS[1]}")
7e8648
+
7e8648
+EOF
7e8648
diff --git a/shared/templates/rsyslog_logfiles_attributes_modify/tests/mixed_include_correct_attr.pass.sh b/shared/templates/rsyslog_logfiles_attributes_modify/tests/mixed_include_correct_attr.pass.sh
7e8648
new file mode 100755
7e8648
index 0000000000..0235130534
7e8648
--- /dev/null
7e8648
+++ b/shared/templates/rsyslog_logfiles_attributes_modify/tests/mixed_include_correct_attr.pass.sh
7e8648
@@ -0,0 +1,58 @@
7e8648
+#!/bin/bash
7e8648
+# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_sle
7e8648
+
7e8648
+# Declare variables used for the tests and define the create_rsyslog_test_logs function
7e8648
+source $SHARED/rsyslog_log_utils.sh
7e8648
+
7e8648
+{{% if ATTRIBUTE == "owner" %}}
7e8648
+CHATTR="chown"
7e8648
+ATTR_VALUE="root"
7e8648
+{{% elif ATTRIBUTE == "groupowner" %}}
7e8648
+CHATTR="chgrp"
7e8648
+ATTR_VALUE="root"
7e8648
+{{% else %}}
7e8648
+CHATTR="chmod"
7e8648
+ATTR_VALUE="0600"
7e8648
+{{% endif %}}
7e8648
+
7e8648
+# create three test log file
7e8648
+create_rsyslog_test_logs 3
7e8648
+
7e8648
+# setup test log file property
7e8648
+$CHATTR $ATTR_VALUE ${RSYSLOG_TEST_LOGS[0]}
7e8648
+$CHATTR $ATTR_VALUE ${RSYSLOG_TEST_LOGS[1]}
7e8648
+$CHATTR $ATTR_VALUE ${RSYSLOG_TEST_LOGS[2]}
7e8648
+
7e8648
+# create first test configuration file with legacy rule for second test log file
7e8648
+test_conf1=${RSYSLOG_TEST_DIR}/legacy.conf
7e8648
+cat << EOF > ${test_conf1}
7e8648
+# rsyslog test configuration file with legacy syntax
7e8648
+
7e8648
+#### RULES ####
7e8648
+*.*     ${RSYSLOG_TEST_LOGS[1]}
7e8648
+
7e8648
+EOF
7e8648
+
7e8648
+# create second test configuration file with RainerScript rule for third test log file
7e8648
+test_conf2=${RSYSLOG_TEST_DIR}/rainerscript.conf
7e8648
+cat << EOF > ${test_conf2}
7e8648
+# rsyslog test configuration file with RainerScript syntax
7e8648
+
7e8648
+#### RULES ####
7e8648
+*.*     action(type="omfile" FileCreateMode="0640" fileOwner="root" fileGroup="hoiadm" File="${RSYSLOG_TEST_LOGS[2]}")
7e8648
+
7e8648
+EOF
7e8648
+
7e8648
+# add rule with first test log file plus two mixed include statement
7e8648
+cat << EOF > $RSYSLOG_CONF
7e8648
+# rsyslog configuration file
7e8648
+
7e8648
+#### RULES ####
7e8648
+*.*     ${RSYSLOG_TEST_LOGS[0]}
7e8648
+
7e8648
+#### MODULES ####
7e8648
+\$IncludeConfig ${test_conf1}
7e8648
+
7e8648
+include(file="${test_conf2}")
7e8648
+
7e8648
+EOF
7e8648
diff --git a/shared/templates/rsyslog_logfiles_attributes_modify/tests/mixed_include_incorrect_attr_legacy.fail.sh b/shared/templates/rsyslog_logfiles_attributes_modify/tests/mixed_include_incorrect_attr_legacy.fail.sh
7e8648
new file mode 100755
7e8648
index 0000000000..bed0afaf5e
7e8648
--- /dev/null
7e8648
+++ b/shared/templates/rsyslog_logfiles_attributes_modify/tests/mixed_include_incorrect_attr_legacy.fail.sh
7e8648
@@ -0,0 +1,63 @@
7e8648
+#!/bin/bash
7e8648
+# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_sle
7e8648
+
7e8648
+# Declare variables used for the tests and define the create_rsyslog_test_logs function
7e8648
+source $SHARED/rsyslog_log_utils.sh
7e8648
+
7e8648
+{{% if ATTRIBUTE == "owner" %}}
7e8648
+CHATTR="chown"
7e8648
+ATTR_VALUE="root"
7e8648
+ATTR_INCORRECT_VALUE="cac_testuser"
7e8648
+useradd $ATTR_INCORRECT_VALUE
7e8648
+{{% elif ATTRIBUTE == "groupowner" %}}
7e8648
+CHATTR="chgrp"
7e8648
+ATTR_VALUE="root"
7e8648
+ATTR_INCORRECT_VALUE="cac_testgroup"
7e8648
+groupadd $ATTR_INCORRECT_VALUE
7e8648
+{{% else %}}
7e8648
+CHATTR="chmod"
7e8648
+ATTR_VALUE="0600"
7e8648
+ATTR_INCORRECT_VALUE="0666"
7e8648
+{{% endif %}}
7e8648
+
7e8648
+# create three test log file
7e8648
+create_rsyslog_test_logs 3
7e8648
+
7e8648
+# setup test log file property
7e8648
+$CHATTR $ATTR_VALUE ${RSYSLOG_TEST_LOGS[0]}
7e8648
+$CHATTR $ATTR_INCORRECT_VALUE ${RSYSLOG_TEST_LOGS[1]}
7e8648
+$CHATTR $ATTR_VALUE ${RSYSLOG_TEST_LOGS[2]}
7e8648
+
7e8648
+# create first test configuration file with legacy rule for second test log file
7e8648
+test_conf1=${RSYSLOG_TEST_DIR}/legacy.conf
7e8648
+cat << EOF > ${test_conf1}
7e8648
+# rsyslog test configuration file with legacy syntax
7e8648
+
7e8648
+#### RULES ####
7e8648
+*.*     ${RSYSLOG_TEST_LOGS[1]}
7e8648
+
7e8648
+EOF
7e8648
+
7e8648
+# create second test configuration file with RainerScript rule for third test log file
7e8648
+test_conf2=${RSYSLOG_TEST_DIR}/rainerscript.conf
7e8648
+cat << EOF > ${test_conf2}
7e8648
+# rsyslog test configuration file with RainerScript syntax
7e8648
+
7e8648
+#### RULES ####
7e8648
+*.*     action(type="omfile" FileCreateMode="0640" fileOwner="root" fileGroup="hoiadm" File="${RSYSLOG_TEST_LOGS[2]}")
7e8648
+
7e8648
+EOF
7e8648
+
7e8648
+# add rule with first test log file plus two mixed include statement
7e8648
+cat << EOF > $RSYSLOG_CONF
7e8648
+# rsyslog configuration file
7e8648
+
7e8648
+#### RULES ####
7e8648
+*.*     ${RSYSLOG_TEST_LOGS[0]}
7e8648
+
7e8648
+#### MODULES ####
7e8648
+\$IncludeConfig ${test_conf1}
7e8648
+
7e8648
+include(file="${test_conf2}")
7e8648
+
7e8648
+EOF
7e8648
diff --git a/shared/templates/rsyslog_logfiles_attributes_modify/tests/mixed_include_incorrect_attr_rainer.fail.sh b/shared/templates/rsyslog_logfiles_attributes_modify/tests/mixed_include_incorrect_attr_rainer.fail.sh
7e8648
new file mode 100755
7e8648
index 0000000000..83c69b3a17
7e8648
--- /dev/null
7e8648
+++ b/shared/templates/rsyslog_logfiles_attributes_modify/tests/mixed_include_incorrect_attr_rainer.fail.sh
7e8648
@@ -0,0 +1,63 @@
7e8648
+#!/bin/bash
7e8648
+# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_sle
7e8648
+
7e8648
+# Declare variables used for the tests and define the create_rsyslog_test_logs function
7e8648
+source $SHARED/rsyslog_log_utils.sh
7e8648
+
7e8648
+{{% if ATTRIBUTE == "owner" %}}
7e8648
+CHATTR="chown"
7e8648
+ATTR_VALUE="root"
7e8648
+ATTR_INCORRECT_VALUE="cac_testuser"
7e8648
+useradd $ATTR_INCORRECT_VALUE
7e8648
+{{% elif ATTRIBUTE == "groupowner" %}}
7e8648
+CHATTR="chgrp"
7e8648
+ATTR_VALUE="root"
7e8648
+ATTR_INCORRECT_VALUE="cac_testgroup"
7e8648
+groupadd $ATTR_INCORRECT_VALUE
7e8648
+{{% else %}}
7e8648
+CHATTR="chmod"
7e8648
+ATTR_VALUE="0600"
7e8648
+ATTR_INCORRECT_VALUE="0666"
7e8648
+{{% endif %}}
7e8648
+
7e8648
+# create three test log file
7e8648
+create_rsyslog_test_logs 3
7e8648
+
7e8648
+# setup test log file property
7e8648
+$CHATTR $ATTR_VALUE ${RSYSLOG_TEST_LOGS[0]}
7e8648
+$CHATTR $ATTR_VALUE ${RSYSLOG_TEST_LOGS[1]}
7e8648
+$CHATTR $ATTR_INCORRECT_VALUE ${RSYSLOG_TEST_LOGS[2]}
7e8648
+
7e8648
+# create first test configuration file with legacy rule for second test log file
7e8648
+test_conf1=${RSYSLOG_TEST_DIR}/legacy.conf
7e8648
+cat << EOF > ${test_conf1}
7e8648
+# rsyslog test configuration file with legacy syntax
7e8648
+
7e8648
+#### RULES ####
7e8648
+*.*     ${RSYSLOG_TEST_LOGS[1]}
7e8648
+
7e8648
+EOF
7e8648
+
7e8648
+# create second test configuration file with RainerScript rule for third test log file
7e8648
+test_conf2=${RSYSLOG_TEST_DIR}/rainerscript.conf
7e8648
+cat << EOF > ${test_conf2}
7e8648
+# rsyslog test configuration file with RainerScript syntax
7e8648
+
7e8648
+#### RULES ####
7e8648
+*.*     action(type="omfile" FileCreateMode="0640" fileOwner="root" fileGroup="hoiadm" File="${RSYSLOG_TEST_LOGS[2]}")
7e8648
+
7e8648
+EOF
7e8648
+
7e8648
+# add rule with first test log file plus two mixed include statement
7e8648
+cat << EOF > $RSYSLOG_CONF
7e8648
+# rsyslog configuration file
7e8648
+
7e8648
+#### RULES ####
7e8648
+*.*     ${RSYSLOG_TEST_LOGS[0]}
7e8648
+
7e8648
+#### MODULES ####
7e8648
+\$IncludeConfig ${test_conf1}
7e8648
+
7e8648
+include(file="${test_conf2}")
7e8648
+
7e8648
+EOF
7e8648
diff --git a/shared/templates/rsyslog_logfiles_attributes_modify/tests/mixed_incorrect_attr_cloudinit.fail.sh b/shared/templates/rsyslog_logfiles_attributes_modify/tests/mixed_incorrect_attr_cloudinit.fail.sh
7e8648
new file mode 100755
7e8648
index 0000000000..43a6f2648d
7e8648
--- /dev/null
7e8648
+++ b/shared/templates/rsyslog_logfiles_attributes_modify/tests/mixed_incorrect_attr_cloudinit.fail.sh
7e8648
@@ -0,0 +1,38 @@
7e8648
+#!/bin/bash
7e8648
+# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_sle
7e8648
+
7e8648
+# Declare variables used for the tests and define the create_rsyslog_test_logs function
7e8648
+source $SHARED/rsyslog_log_utils.sh
7e8648
+
7e8648
+{{% if ATTRIBUTE == "owner" %}}
7e8648
+CHATTR="chown"
7e8648
+ATTR_VALUE="root"
7e8648
+ATTR_INCORRECT_VALUE="cac_testuser"
7e8648
+useradd $ATTR_INCORRECT_VALUE
7e8648
+{{% elif ATTRIBUTE == "groupowner" %}}
7e8648
+CHATTR="chgrp"
7e8648
+ATTR_VALUE="root"
7e8648
+ATTR_INCORRECT_VALUE="cac_testgroup"
7e8648
+groupadd $ATTR_INCORRECT_VALUE
7e8648
+{{% else %}}
7e8648
+CHATTR="chmod"
7e8648
+ATTR_VALUE="0600"
7e8648
+ATTR_INCORRECT_VALUE="0666"
7e8648
+{{% endif %}}
7e8648
+
7e8648
+# create three test log file
7e8648
+create_rsyslog_test_logs 2
7e8648
+
7e8648
+# setup test log file property
7e8648
+$CHATTR $ATTR_VALUE ${RSYSLOG_TEST_LOGS[0]}
7e8648
+$CHATTR $ATTR_INCORRECT_VALUE ${RSYSLOG_TEST_LOGS[1]}
7e8648
+
7e8648
+# add rules with both syntax for different test log files
7e8648
+cat << EOF > $RSYSLOG_CONF
7e8648
+# rsyslog configuration file
7e8648
+
7e8648
+#### RULES ####
7e8648
+*.*     ${RSYSLOG_TEST_LOGS[0]}
7e8648
+:syslogtag, isequal, "[CLOUDINIT]" ${RSYSLOG_TEST_LOGS[1]}
7e8648
+
7e8648
+EOF
7e8648
diff --git a/shared/templates/rsyslog_logfiles_attributes_modify/tests/mixed_incorrect_attr_legacy.fail.sh b/shared/templates/rsyslog_logfiles_attributes_modify/tests/mixed_incorrect_attr_legacy.fail.sh
7e8648
new file mode 100755
7e8648
index 0000000000..f459e7377b
7e8648
--- /dev/null
7e8648
+++ b/shared/templates/rsyslog_logfiles_attributes_modify/tests/mixed_incorrect_attr_legacy.fail.sh
7e8648
@@ -0,0 +1,38 @@
7e8648
+#!/bin/bash
7e8648
+# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_sle
7e8648
+
7e8648
+# Declare variables used for the tests and define the create_rsyslog_test_logs function
7e8648
+source $SHARED/rsyslog_log_utils.sh
7e8648
+
7e8648
+{{% if ATTRIBUTE == "owner" %}}
7e8648
+CHATTR="chown"
7e8648
+ATTR_VALUE="root"
7e8648
+ATTR_INCORRECT_VALUE="cac_testuser"
7e8648
+useradd $ATTR_INCORRECT_VALUE
7e8648
+{{% elif ATTRIBUTE == "groupowner" %}}
7e8648
+CHATTR="chgrp"
7e8648
+ATTR_VALUE="root"
7e8648
+ATTR_INCORRECT_VALUE="cac_testgroup"
7e8648
+groupadd $ATTR_INCORRECT_VALUE
7e8648
+{{% else %}}
7e8648
+CHATTR="chmod"
7e8648
+ATTR_VALUE="0600"
7e8648
+ATTR_INCORRECT_VALUE="0666"
7e8648
+{{% endif %}}
7e8648
+
7e8648
+# create three test log file
7e8648
+create_rsyslog_test_logs 2
7e8648
+
7e8648
+# setup test log file property
7e8648
+$CHATTR $ATTR_INCORRECT_VALUE ${RSYSLOG_TEST_LOGS[0]}
7e8648
+$CHATTR $ATTR_VALUE ${RSYSLOG_TEST_LOGS[1]}
7e8648
+
7e8648
+# add rules with both syntax for different test log files
7e8648
+cat << EOF > $RSYSLOG_CONF
7e8648
+# rsyslog configuration file
7e8648
+
7e8648
+#### RULES ####
7e8648
+*.*     ${RSYSLOG_TEST_LOGS[0]}
7e8648
+*.*     action(type="omfile" FileCreateMode="0640" fileOwner="root" fileGroup="hoiadm" File="${RSYSLOG_TEST_LOGS[1]}")
7e8648
+
7e8648
+EOF
7e8648
diff --git a/shared/templates/rsyslog_logfiles_attributes_modify/tests/mixed_incorrect_attr_rainer.fail.sh b/shared/templates/rsyslog_logfiles_attributes_modify/tests/mixed_incorrect_attr_rainer.fail.sh
7e8648
new file mode 100755
7e8648
index 0000000000..67193b69d8
7e8648
--- /dev/null
7e8648
+++ b/shared/templates/rsyslog_logfiles_attributes_modify/tests/mixed_incorrect_attr_rainer.fail.sh
7e8648
@@ -0,0 +1,38 @@
7e8648
+#!/bin/bash
7e8648
+# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_sle
7e8648
+
7e8648
+# Declare variables used for the tests and define the create_rsyslog_test_logs function
7e8648
+source $SHARED/rsyslog_log_utils.sh
7e8648
+
7e8648
+{{% if ATTRIBUTE == "owner" %}}
7e8648
+CHATTR="chown"
7e8648
+ATTR_VALUE="root"
7e8648
+ATTR_INCORRECT_VALUE="cac_testuser"
7e8648
+useradd $ATTR_INCORRECT_VALUE
7e8648
+{{% elif ATTRIBUTE == "groupowner" %}}
7e8648
+CHATTR="chgrp"
7e8648
+ATTR_VALUE="root"
7e8648
+ATTR_INCORRECT_VALUE="cac_testgroup"
7e8648
+groupadd $ATTR_INCORRECT_VALUE
7e8648
+{{% else %}}
7e8648
+CHATTR="chmod"
7e8648
+ATTR_VALUE="0600"
7e8648
+ATTR_INCORRECT_VALUE="0666"
7e8648
+{{% endif %}}
7e8648
+
7e8648
+# create three test log file
7e8648
+create_rsyslog_test_logs 2
7e8648
+
7e8648
+# setup test log file property
7e8648
+$CHATTR $ATTR_VALUE ${RSYSLOG_TEST_LOGS[0]}
7e8648
+$CHATTR $ATTR_INCORRECT_VALUE ${RSYSLOG_TEST_LOGS[1]}
7e8648
+
7e8648
+# add rules with both syntax for different test log files
7e8648
+cat << EOF > $RSYSLOG_CONF
7e8648
+# rsyslog configuration file
7e8648
+
7e8648
+#### RULES ####
7e8648
+*.*     ${RSYSLOG_TEST_LOGS[0]}
7e8648
+*.*     action(type="omfile" FileCreateMode="0640" fileOwner="root" fileGroup="hoiadm" File="${RSYSLOG_TEST_LOGS[1]}")
7e8648
+
7e8648
+EOF
7e8648
diff --git a/shared/templates/rsyslog_logfiles_attributes_modify/tests/rainer_correct_attr.pass.sh b/shared/templates/rsyslog_logfiles_attributes_modify/tests/rainer_correct_attr.pass.sh
7e8648
new file mode 100755
7e8648
index 0000000000..abdb09c485
7e8648
--- /dev/null
7e8648
+++ b/shared/templates/rsyslog_logfiles_attributes_modify/tests/rainer_correct_attr.pass.sh
7e8648
@@ -0,0 +1,31 @@
7e8648
+#!/bin/bash
7e8648
+# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_sle
7e8648
+
7e8648
+# Declare variables used for the tests and define the create_rsyslog_test_logs function
7e8648
+source $SHARED/rsyslog_log_utils.sh
7e8648
+
7e8648
+{{% if ATTRIBUTE == "owner" %}}
7e8648
+CHATTR="chown"
7e8648
+ATTR_VALUE="root"
7e8648
+{{% elif ATTRIBUTE == "groupowner" %}}
7e8648
+CHATTR="chgrp"
7e8648
+ATTR_VALUE="root"
7e8648
+{{% else %}}
7e8648
+CHATTR="chmod"
7e8648
+ATTR_VALUE="0600"
7e8648
+{{% endif %}}
7e8648
+
7e8648
+# create one test log file
7e8648
+create_rsyslog_test_logs 1
7e8648
+
7e8648
+# setup test log file property
7e8648
+$CHATTR $ATTR_VALUE ${RSYSLOG_TEST_LOGS[0]}
7e8648
+
7e8648
+# add rule with test log file
7e8648
+cat << EOF > $RSYSLOG_CONF
7e8648
+# rsyslog configuration file
7e8648
+
7e8648
+#### RULES ####
7e8648
+*.*     action(type="omfile" FileCreateMode="0640" fileOwner="root" fileGroup="hoiadm" File="${RSYSLOG_TEST_LOGS[0]}")
7e8648
+
7e8648
+EOF
7e8648
diff --git a/shared/templates/rsyslog_logfiles_attributes_modify/tests/rainer_include_correct_attr.pass.sh b/shared/templates/rsyslog_logfiles_attributes_modify/tests/rainer_include_correct_attr.pass.sh
7e8648
new file mode 100755
7e8648
index 0000000000..8b73578e39
7e8648
--- /dev/null
7e8648
+++ b/shared/templates/rsyslog_logfiles_attributes_modify/tests/rainer_include_correct_attr.pass.sh
7e8648
@@ -0,0 +1,45 @@
7e8648
+#!/bin/bash
7e8648
+# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_sle
7e8648
+
7e8648
+# Declare variables used for the tests and define the create_rsyslog_test_logs function
7e8648
+source $SHARED/rsyslog_log_utils.sh
7e8648
+
7e8648
+{{% if ATTRIBUTE == "owner" %}}
7e8648
+CHATTR="chown"
7e8648
+ATTR_VALUE="root"
7e8648
+{{% elif ATTRIBUTE == "groupowner" %}}
7e8648
+CHATTR="chgrp"
7e8648
+ATTR_VALUE="root"
7e8648
+{{% else %}}
7e8648
+CHATTR="chmod"
7e8648
+ATTR_VALUE="0600"
7e8648
+{{% endif %}}
7e8648
+
7e8648
+# create two test log file
7e8648
+create_rsyslog_test_logs 2
7e8648
+
7e8648
+# setup test log file property
7e8648
+$CHATTR $ATTR_VALUE ${RSYSLOG_TEST_LOGS[0]}
7e8648
+$CHATTR $ATTR_VALUE ${RSYSLOG_TEST_LOGS[1]}
7e8648
+
7e8648
+# create test configuration file with rule for second test log file
7e8648
+test_conf=${RSYSLOG_TEST_DIR}/test1.conf
7e8648
+cat << EOF > ${test_conf}
7e8648
+# rsyslog test configuration file
7e8648
+
7e8648
+#### RULES ####
7e8648
+*.*     action(type="omfile" FileCreateMode="0640" fileOwner="root" fileGroup="hoiadm" File="${RSYSLOG_TEST_LOGS[1]}")
7e8648
+
7e8648
+EOF
7e8648
+
7e8648
+# add rule with first test log file plus an include statement
7e8648
+cat << EOF > $RSYSLOG_CONF
7e8648
+# rsyslog configuration file
7e8648
+
7e8648
+#### RULES ####
7e8648
+*.*     action(type="omfile" FileCreateMode="0640" fileOwner="root" fileGroup="hoiadm" File="${RSYSLOG_TEST_LOGS[0]}")
7e8648
+
7e8648
+#### MODULES ####
7e8648
+include(file="${test_conf}")
7e8648
+
7e8648
+EOF
7e8648
diff --git a/shared/templates/rsyslog_logfiles_attributes_modify/tests/rainer_include_incorrect_attr.fail.sh b/shared/templates/rsyslog_logfiles_attributes_modify/tests/rainer_include_incorrect_attr.fail.sh
7e8648
new file mode 100755
7e8648
index 0000000000..4c25c09e2e
7e8648
--- /dev/null
7e8648
+++ b/shared/templates/rsyslog_logfiles_attributes_modify/tests/rainer_include_incorrect_attr.fail.sh
7e8648
@@ -0,0 +1,50 @@
7e8648
+#!/bin/bash
7e8648
+# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_sle
7e8648
+
7e8648
+# Declare variables used for the tests and define the create_rsyslog_test_logs function
7e8648
+source $SHARED/rsyslog_log_utils.sh
7e8648
+
7e8648
+{{% if ATTRIBUTE == "owner" %}}
7e8648
+CHATTR="chown"
7e8648
+ATTR_VALUE="root"
7e8648
+ATTR_INCORRECT_VALUE="cac_testuser"
7e8648
+useradd $ATTR_INCORRECT_VALUE
7e8648
+{{% elif ATTRIBUTE == "groupowner" %}}
7e8648
+CHATTR="chgrp"
7e8648
+ATTR_VALUE="root"
7e8648
+ATTR_INCORRECT_VALUE="cac_testgroup"
7e8648
+groupadd $ATTR_INCORRECT_VALUE
7e8648
+{{% else %}}
7e8648
+CHATTR="chmod"
7e8648
+ATTR_VALUE="0600"
7e8648
+ATTR_INCORRECT_VALUE="0666"
7e8648
+{{% endif %}}
7e8648
+
7e8648
+# create two test log file
7e8648
+create_rsyslog_test_logs 2
7e8648
+
7e8648
+# setup test log file property
7e8648
+$CHATTR $ATTR_VALUE ${RSYSLOG_TEST_LOGS[0]}
7e8648
+$CHATTR $ATTR_INCORRECT_VALUE ${RSYSLOG_TEST_LOGS[1]}
7e8648
+
7e8648
+# create test configuration file with rule for second test log file
7e8648
+test_conf=${RSYSLOG_TEST_DIR}/test1.conf
7e8648
+cat << EOF > ${test_conf}
7e8648
+# rsyslog test configuration file
7e8648
+
7e8648
+#### RULES ####
7e8648
+*.*     action(type="omfile" FileCreateMode="0640" fileOwner="root" fileGroup="hoiadm" File="${RSYSLOG_TEST_LOGS[1]}")
7e8648
+
7e8648
+EOF
7e8648
+
7e8648
+# add rule with first test log file plus an include statement
7e8648
+cat << EOF > $RSYSLOG_CONF
7e8648
+# rsyslog configuration file
7e8648
+
7e8648
+#### RULES ####
7e8648
+*.*     action(type="omfile" FileCreateMode="0640" fileOwner="root" fileGroup="hoiadm" File="${RSYSLOG_TEST_LOGS[0]}")
7e8648
+
7e8648
+#### MODULES ####
7e8648
+include(file="${test_conf}")
7e8648
+
7e8648
+EOF
7e8648
diff --git a/shared/templates/rsyslog_logfiles_attributes_modify/tests/rainer_include_multiline_correct_attr.pass.sh b/shared/templates/rsyslog_logfiles_attributes_modify/tests/rainer_include_multiline_correct_attr.pass.sh
7e8648
new file mode 100755
7e8648
index 0000000000..508a5cf6eb
7e8648
--- /dev/null
7e8648
+++ b/shared/templates/rsyslog_logfiles_attributes_modify/tests/rainer_include_multiline_correct_attr.pass.sh
7e8648
@@ -0,0 +1,47 @@
7e8648
+#!/bin/bash
7e8648
+# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_sle
7e8648
+
7e8648
+# Declare variables used for the tests and define the create_rsyslog_test_logs function
7e8648
+source $SHARED/rsyslog_log_utils.sh
7e8648
+
7e8648
+{{% if ATTRIBUTE == "owner" %}}
7e8648
+CHATTR="chown"
7e8648
+ATTR_VALUE="root"
7e8648
+{{% elif ATTRIBUTE == "groupowner" %}}
7e8648
+CHATTR="chgrp"
7e8648
+ATTR_VALUE="root"
7e8648
+{{% else %}}
7e8648
+CHATTR="chmod"
7e8648
+ATTR_VALUE="0600"
7e8648
+{{% endif %}}
7e8648
+
7e8648
+# create two test log file
7e8648
+create_rsyslog_test_logs 2
7e8648
+
7e8648
+# setup test log file property
7e8648
+$CHATTR $ATTR_VALUE ${RSYSLOG_TEST_LOGS[0]}
7e8648
+$CHATTR $ATTR_VALUE ${RSYSLOG_TEST_LOGS[1]}
7e8648
+
7e8648
+# create test configuration file with rule for second test log file
7e8648
+test_conf=${RSYSLOG_TEST_DIR}/test1.conf
7e8648
+cat << EOF > ${test_conf}
7e8648
+# rsyslog test configuration file
7e8648
+
7e8648
+#### RULES ####
7e8648
+*.*     action(type="omfile" FileCreateMode="0640" fileOwner="root" fileGroup="hoiadm" File="${RSYSLOG_TEST_LOGS[1]}")
7e8648
+
7e8648
+EOF
7e8648
+
7e8648
+# add rule with first test log file plus an include statement
7e8648
+cat << EOF > $RSYSLOG_CONF
7e8648
+# rsyslog configuration file
7e8648
+
7e8648
+#### RULES ####
7e8648
+*.*     action(type="omfile" FileCreateMode="0640" fileOwner="root" fileGroup="hoiadm" File="${RSYSLOG_TEST_LOGS[0]}")
7e8648
+
7e8648
+#### MODULES ####
7e8648
+include(
7e8648
+   file="${test_conf}"
7e8648
+)
7e8648
+
7e8648
+EOF
7e8648
diff --git a/shared/templates/rsyslog_logfiles_attributes_modify/tests/rainer_include_multiline_incorrect_attr.fail.sh b/shared/templates/rsyslog_logfiles_attributes_modify/tests/rainer_include_multiline_incorrect_attr.fail.sh
7e8648
new file mode 100755
7e8648
index 0000000000..49fada4cd4
7e8648
--- /dev/null
7e8648
+++ b/shared/templates/rsyslog_logfiles_attributes_modify/tests/rainer_include_multiline_incorrect_attr.fail.sh
7e8648
@@ -0,0 +1,52 @@
7e8648
+#!/bin/bash
7e8648
+# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_sle
7e8648
+
7e8648
+# Declare variables used for the tests and define the create_rsyslog_test_logs function
7e8648
+source $SHARED/rsyslog_log_utils.sh
7e8648
+
7e8648
+{{% if ATTRIBUTE == "owner" %}}
7e8648
+CHATTR="chown"
7e8648
+ATTR_VALUE="root"
7e8648
+ATTR_INCORRECT_VALUE="cac_testuser"
7e8648
+useradd $ATTR_INCORRECT_VALUE
7e8648
+{{% elif ATTRIBUTE == "groupowner" %}}
7e8648
+CHATTR="chgrp"
7e8648
+ATTR_VALUE="root"
7e8648
+ATTR_INCORRECT_VALUE="cac_testgroup"
7e8648
+groupadd $ATTR_INCORRECT_VALUE
7e8648
+{{% else %}}
7e8648
+CHATTR="chmod"
7e8648
+ATTR_VALUE="0600"
7e8648
+ATTR_INCORRECT_VALUE="0666"
7e8648
+{{% endif %}}
7e8648
+
7e8648
+# create two test log file
7e8648
+create_rsyslog_test_logs 2
7e8648
+
7e8648
+# setup test log file property
7e8648
+$CHATTR $ATTR_VALUE ${RSYSLOG_TEST_LOGS[0]}
7e8648
+$CHATTR $ATTR_INCORRECT_VALUE ${RSYSLOG_TEST_LOGS[1]}
7e8648
+
7e8648
+# create test configuration file with rule for second test log file
7e8648
+test_conf=${RSYSLOG_TEST_DIR}/test1.conf
7e8648
+cat << EOF > ${test_conf}
7e8648
+# rsyslog test configuration file
7e8648
+
7e8648
+#### RULES ####
7e8648
+*.*     action(type="omfile" FileCreateMode="0640" fileOwner="root" fileGroup="hoiadm" File="${RSYSLOG_TEST_LOGS[1]}")
7e8648
+
7e8648
+EOF
7e8648
+
7e8648
+# add rule with first test log file plus an include statement
7e8648
+cat << EOF > $RSYSLOG_CONF
7e8648
+# rsyslog configuration file
7e8648
+
7e8648
+#### RULES ####
7e8648
+*.*     action(type="omfile" FileCreateMode="0640" fileOwner="root" fileGroup="hoiadm" File="${RSYSLOG_TEST_LOGS[0]}")
7e8648
+
7e8648
+#### MODULES ####
7e8648
+include(
7e8648
+   file="${test_conf}"
7e8648
+)
7e8648
+
7e8648
+EOF
7e8648
diff --git a/shared/templates/rsyslog_logfiles_attributes_modify/tests/rainer_incorrect_attr.fail.sh b/shared/templates/rsyslog_logfiles_attributes_modify/tests/rainer_incorrect_attr.fail.sh
7e8648
new file mode 100755
7e8648
index 0000000000..b17eb6b744
7e8648
--- /dev/null
7e8648
+++ b/shared/templates/rsyslog_logfiles_attributes_modify/tests/rainer_incorrect_attr.fail.sh
7e8648
@@ -0,0 +1,33 @@
7e8648
+#!/bin/bash
7e8648
+# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_sle
7e8648
+
7e8648
+# Declare variables used for the tests and define the create_rsyslog_test_logs function
7e8648
+source $SHARED/rsyslog_log_utils.sh
7e8648
+
7e8648
+{{% if ATTRIBUTE == "owner" %}}
7e8648
+CHATTR="chown"
7e8648
+ATTR_INCORRECT_VALUE="cac_testuser"
7e8648
+useradd $ATTR_INCORRECT_VALUE
7e8648
+{{% elif ATTRIBUTE == "groupowner" %}}
7e8648
+CHATTR="chgrp"
7e8648
+ATTR_INCORRECT_VALUE="cac_testgroup"
7e8648
+groupadd $ATTR_INCORRECT_VALUE
7e8648
+{{% else %}}
7e8648
+CHATTR="chmod"
7e8648
+ATTR_INCORRECT_VALUE="0666"
7e8648
+{{% endif %}}
7e8648
+
7e8648
+# create one test log file
7e8648
+create_rsyslog_test_logs 1
7e8648
+
7e8648
+# setup test log file property
7e8648
+$CHATTR $ATTR_INCORRECT_VALUE ${RSYSLOG_TEST_LOGS[0]}
7e8648
+
7e8648
+# add rule with non-root user owned log file
7e8648
+cat << EOF > $RSYSLOG_CONF
7e8648
+# rsyslog configuration file
7e8648
+
7e8648
+#### RULES ####
7e8648
+*.*     action(type="omfile" FileCreateMode="0640" fileOwner="root" fileGroup="hoiadm" File="${RSYSLOG_TEST_LOGS[0]}")
7e8648
+
7e8648
+EOF
7e8648
-- 
7e8648
2.39.1
7e8648