From 298d5215e3b5c7ea9a2c9ee398f50c8428e99ffd Mon Sep 17 00:00:00 2001 From: Alan Moore Date: Thu, 10 Sep 2026 10:06:46 +0100 Subject: [PATCH 1/5] Allow space-starting entries in audit.conf Signed-off-by: Alan Moore --- .../ansible/shared.yml | 2 +- .../bash/shared.sh | 10 +++++----- .../tests/correct_value.pass.sh | 12 ++++++----- .../tests/wrong_value.fail.sh | 20 +++++++++++-------- .../oval/auditd_conf_log_file_not_set.xml | 4 ++-- 5 files changed, 27 insertions(+), 21 deletions(-) diff --git a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/ansible/shared.yml b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/ansible/shared.yml index 58a7de295388..8d2d4c4081bb 100644 --- a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/ansible/shared.yml +++ b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/ansible/shared.yml @@ -5,7 +5,7 @@ # disruption = low - name: "{{{ rule_title }}} - Get audit log file from /etc/audit/auditd.conf" - ansible.builtin.command: grep -iw ^log_file /etc/audit/auditd.conf + ansible.builtin.command: grep -iE '^[[:space:]]*log_file\b' /etc/audit/auditd.conf check_mode: False failed_when: false changed_when: false diff --git a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/bash/shared.sh b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/bash/shared.sh index 0f74bf2767b3..2308a7a400c6 100644 --- a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/bash/shared.sh +++ b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/bash/shared.sh @@ -1,8 +1,8 @@ # platform = multi_platform_all -if LC_ALL=C grep -iw log_file /etc/audit/auditd.conf; then - FILE=$(awk -F "=" '/^log_file/ {print $2}' /etc/audit/auditd.conf | tr -d ' ') - chown root $FILE* -else - chown root /var/log/audit/audit.log* +if LC_ALL=C grep -iqE '^[[:space:]]*log_file\b' /etc/audit/auditd.conf; then + FILE=$(awk -F "=" '/^[[:space:]]*log_file[[:space:]]*=/ {print $2}' /etc/audit/auditd.conf | tr -d ' ') fi + +FILE=${FILE:-/var/log/audit/audit.log} +chown root "$(dirname "$FILE")"/* diff --git a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/correct_value.pass.sh b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/correct_value.pass.sh index 4309570778f8..cf1e73bd21b1 100644 --- a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/correct_value.pass.sh +++ b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/correct_value.pass.sh @@ -4,15 +4,17 @@ sed -i "/^\s*log_file.*/d" /etc/audit/auditd.conf echo "log_file = /var/log/audit/audit2.log" >> /etc/audit/auditd.conf -if grep -iwq "log_file" /etc/audit/auditd.conf; then - FILE=$(awk -F "=" '/^log_file/ {print $2}' /etc/audit/auditd.conf | tr -d ' ') -else - FILE="/var/log/audit/audit.log" +if LC_ALL=C grep -iqE '^[[:space:]]*log_file\b' /etc/audit/auditd.conf; then + FILE=$(awk -F "=" '/^[[:space:]]*log_file[[:space:]]*=/ {print $2}' /etc/audit/auditd.conf | tr -d ' ') fi +FILE=${FILE:-/var/log/audit/audit.log} + useradd testuser_123 touch "/var/log/audit/audit2.log" touch "/var/log/audit/audit.log" -chown root $FILE* +for f in $FILE; do + chown root "${f}"* +done chown testuser_123 "/var/log/audit/audit.log" diff --git a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/wrong_value.fail.sh b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/wrong_value.fail.sh index d597ca07f139..1aa9085060fb 100644 --- a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/wrong_value.fail.sh +++ b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/wrong_value.fail.sh @@ -4,21 +4,25 @@ sed -i "/^\s*log_file.*/d" /etc/audit/auditd.conf echo "log_file = /var/log/audit/audit2.log" >> /etc/audit/auditd.conf -if grep -iwq "log_file" /etc/audit/auditd.conf; then - FILE=$(awk -F "=" '/^log_file/ {print $2}' /etc/audit/auditd.conf | tr -d ' ') -else - FILE="/var/log/audit/audit.log" +if LC_ALL=C grep -iqE '^[[:space:]]*log_file\b' /etc/audit/auditd.conf; then + FILE=$(awk -F "=" '/^[[:space:]]*log_file[[:space:]]*=/ {print $2}' /etc/audit/auditd.conf | tr -d ' ') fi +FILE=${FILE:-/var/log/audit/audit.log} + useradd testuser_123 touch "/var/log/audit/audit.log" chown root "/var/log/audit/audit.log" {{% if product in ["ol8", "rhel8"] %}} -touch $FILE -chown testuser_123 $FILE +for f in $FILE; do + touch "$f" + chown testuser_123 "$f" +done {{% else %}} -touch $FILE.1 -chown testuser_123 $FILE.1 +for f in $FILE; do + touch "${f}.1" + chown testuser_123 "${f}.1" +done {{% endif %}} diff --git a/shared/checks/oval/auditd_conf_log_file_not_set.xml b/shared/checks/oval/auditd_conf_log_file_not_set.xml index dc7a5be9bf30..76e4fb67e96c 100644 --- a/shared/checks/oval/auditd_conf_log_file_not_set.xml +++ b/shared/checks/oval/auditd_conf_log_file_not_set.xml @@ -20,12 +20,12 @@ /etc/audit/auditd.conf - ^(log_file\s*=\s*.*)$ + ^\s*(log_file\s*=\s*.*)$ 1 - + From a2385a07bda6e373c9040c51ca3dd45ecc9aec3b Mon Sep 17 00:00:00 2001 From: Alan Moore Date: Thu, 10 Sep 2026 14:01:13 +0100 Subject: [PATCH 2/5] Check effective log file in oval for Ubuntu Signed-off-by: Alan Moore --- .../oval/shared.xml | 27 ++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/oval/shared.xml b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/oval/shared.xml index 15495801308c..7af6c35c5c0b 100644 --- a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/oval/shared.xml +++ b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/oval/shared.xml @@ -6,7 +6,7 @@ - {{% if "ol" in families or "rhel" in product %}} + {{% if "ol" in families or "rhel" in product or "ubuntu" in product %}} @@ -18,17 +18,31 @@ {{% endif %}} - + + {{% if "ubuntu" in product %}} + + {{% else %}} + {{% endif %}} state_owner_not_root_var_log_audit - - {{% if "ol" in families or "rhel" in product %}} + + + + ^ + + + + .*$ + + + + {{% if "ol" in families or "rhel" in product or "ubuntu" in product %}} @@ -37,7 +51,12 @@ + {{% if "ol" in families or "rhel" in product %}} /var/log/audit/audit.log + {{% else %}} + /var/log/audit + ^audit\.log.*$ + {{% endif %}} state_owner_not_root_var_log_audit {{% else %}} From 17ef8fee46a1867fd3fd31eb727407cce8441ac3 Mon Sep 17 00:00:00 2001 From: Alan Moore Date: Thu, 10 Sep 2026 16:54:11 +0100 Subject: [PATCH 3/5] Simplfy test scripts Signed-off-by: Alan Moore --- .../tests/correct_value.pass.sh | 18 +++++---------- .../tests/correct_value_default_file.pass.sh | 8 +++++-- .../tests/wrong_value.fail.sh | 22 ++++++------------- .../tests/wrong_value_default_file.fail.sh | 2 ++ 4 files changed, 21 insertions(+), 29 deletions(-) diff --git a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/correct_value.pass.sh b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/correct_value.pass.sh index cf1e73bd21b1..4e9c27be43bd 100644 --- a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/correct_value.pass.sh +++ b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/correct_value.pass.sh @@ -4,17 +4,11 @@ sed -i "/^\s*log_file.*/d" /etc/audit/auditd.conf echo "log_file = /var/log/audit/audit2.log" >> /etc/audit/auditd.conf -if LC_ALL=C grep -iqE '^[[:space:]]*log_file\b' /etc/audit/auditd.conf; then - FILE=$(awk -F "=" '/^[[:space:]]*log_file[[:space:]]*=/ {print $2}' /etc/audit/auditd.conf | tr -d ' ') -fi - -FILE=${FILE:-/var/log/audit/audit.log} - useradd testuser_123 -touch "/var/log/audit/audit2.log" -touch "/var/log/audit/audit.log" +mkdir -p /var/log/audit +touch /var/log/audit/audit2.log +touch /var/log/audit/audit2.log.1 +touch /var/log/audit/audit.log -for f in $FILE; do - chown root "${f}"* -done -chown testuser_123 "/var/log/audit/audit.log" +chown root /var/log/audit/audit2.log* +chown testuser_123 /var/log/audit/audit.log diff --git a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/correct_value_default_file.pass.sh b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/correct_value_default_file.pass.sh index 0c30387f65f3..433159dfe54b 100644 --- a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/correct_value_default_file.pass.sh +++ b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/correct_value_default_file.pass.sh @@ -3,8 +3,12 @@ # packages = audit sed -i "/^\s*log_file.*/d" /etc/audit/auditd.conf + useradd testuser_123 +mkdir -p /var/log/audit +touch /var/log/audit/audit.log +touch /var/log/audit/audit.log.1 touch "/var/log/audit/audit2.log" -chown root "/var/log/audit/audit.log" -chown testuser_123 "/var/log/audit/audit2.log" +chown root /var/log/audit/audit.log* +chown testuser_123 /var/log/audit/audit2.log diff --git a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/wrong_value.fail.sh b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/wrong_value.fail.sh index 1aa9085060fb..677dedaba5f0 100644 --- a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/wrong_value.fail.sh +++ b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/wrong_value.fail.sh @@ -4,25 +4,17 @@ sed -i "/^\s*log_file.*/d" /etc/audit/auditd.conf echo "log_file = /var/log/audit/audit2.log" >> /etc/audit/auditd.conf -if LC_ALL=C grep -iqE '^[[:space:]]*log_file\b' /etc/audit/auditd.conf; then - FILE=$(awk -F "=" '/^[[:space:]]*log_file[[:space:]]*=/ {print $2}' /etc/audit/auditd.conf | tr -d ' ') -fi - -FILE=${FILE:-/var/log/audit/audit.log} +FILE="/var/log/audit/audit2.log" useradd testuser_123 +mkdir -p /var/log/audit touch "/var/log/audit/audit.log" chown root "/var/log/audit/audit.log" -{{% if product in ["ol8", "rhel8"] %}} -for f in $FILE; do - touch "$f" - chown testuser_123 "$f" -done -{{% else %}} -for f in $FILE; do - touch "${f}.1" - chown testuser_123 "${f}.1" -done +touch "$FILE" +chown testuser_123 "$FILE" +{{% if product not in ["ol8", "rhel8"] %}} +touch "$FILE.1" +chown testuser_123 "$FILE.1" {{% endif %}} diff --git a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/wrong_value_default_file.fail.sh b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/wrong_value_default_file.fail.sh index 681f60bfb066..515dcf554d3a 100644 --- a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/wrong_value_default_file.fail.sh +++ b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/wrong_value_default_file.fail.sh @@ -3,7 +3,9 @@ # packages = audit sed -i "/^\s*log_file.*/d" /etc/audit/auditd.conf + useradd testuser_123 +mkdir -p /var/log/audit touch "/var/log/audit/audit2.log" touch "/var/log/audit/audit.log" From dc3f5aa2bb8b0666a50f29fe27b9ec5fff5e5f83 Mon Sep 17 00:00:00 2001 From: Alan Moore Date: Thu, 10 Sep 2026 16:57:38 +0100 Subject: [PATCH 4/5] Enable test scripts for ubuntu Signed-off-by: Alan Moore --- .../tests/correct_value.pass.sh | 1 + .../tests/correct_value_default_file.pass.sh | 2 +- .../tests/wrong_value_default_file.fail.sh | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/correct_value.pass.sh b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/correct_value.pass.sh index 4e9c27be43bd..49b42c898a58 100644 --- a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/correct_value.pass.sh +++ b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/correct_value.pass.sh @@ -1,4 +1,5 @@ #!/bin/bash +# platform = multi_platform_ol,multi_platform_rhel,multi_platform_almalinux,multi_platform_ubuntu # packages = audit sed -i "/^\s*log_file.*/d" /etc/audit/auditd.conf diff --git a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/correct_value_default_file.pass.sh b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/correct_value_default_file.pass.sh index 433159dfe54b..6d54a15c40b8 100644 --- a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/correct_value_default_file.pass.sh +++ b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/correct_value_default_file.pass.sh @@ -1,5 +1,5 @@ #!/bin/bash -# platform = multi_platform_ol,multi_platform_rhel,multi_platform_almalinux +# platform = multi_platform_ol,multi_platform_rhel,multi_platform_almalinux,multi_platform_ubuntu # packages = audit sed -i "/^\s*log_file.*/d" /etc/audit/auditd.conf diff --git a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/wrong_value_default_file.fail.sh b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/wrong_value_default_file.fail.sh index 515dcf554d3a..8269f6d88381 100644 --- a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/wrong_value_default_file.fail.sh +++ b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/wrong_value_default_file.fail.sh @@ -1,5 +1,5 @@ #!/bin/bash -# platform = multi_platform_ol,multi_platform_rhel,multi_platform_almalinux +# platform = multi_platform_ol,multi_platform_rhel,multi_platform_almalinux,multi_platform_ubuntu # packages = audit sed -i "/^\s*log_file.*/d" /etc/audit/auditd.conf From bca81c31760839e6e7ecae1d40f193f6440014f6 Mon Sep 17 00:00:00 2001 From: Alan Moore Date: Tue, 15 Sep 2026 19:17:06 +0100 Subject: [PATCH 5/5] Touch only the configured log filenames Signed-off-by: Alan Moore --- .../file_ownership_var_log_audit_stig/bash/shared.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/bash/shared.sh b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/bash/shared.sh index 2308a7a400c6..0c4131a73216 100644 --- a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/bash/shared.sh +++ b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/bash/shared.sh @@ -5,4 +5,4 @@ if LC_ALL=C grep -iqE '^[[:space:]]*log_file\b' /etc/audit/auditd.conf; then fi FILE=${FILE:-/var/log/audit/audit.log} -chown root "$(dirname "$FILE")"/* +chown root "$(dirname "$FILE")"/"${FILE}"*