Skip to content

Commit d0a40db

Browse files
committed
Exclude more types of files in the rsyslog files permissions remediation.
A line in the rsyslog conf file as such #kern.* action(type="omfile" file="/dev/console") Would get in the way of the remediation and be considered a valid log file, with this modification such files are excluded.
1 parent 24aa962 commit d0a40db

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

shared/templates/rsyslog_logfiles_attributes_modify/ansible.template

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@
5252
set -o pipefail{{% endif %}}
5353
grep -oP '^[^(\s|#|\$)]+[\s]+.*[\s]+-?(/+[^:;\s]+);*\.*$' {{ item.1.path }} | \
5454
awk '{print $NF}' | \
55-
sed -e 's/^-//' || true
55+
sed -e 's/^-//' | \
56+
grep -v '^/dev/' || true
5657
loop: "{{ rsyslog_config_files.results | default([]) | subelements('files') }}"
5758
register: log_files_old
5859
changed_when: False
@@ -62,10 +63,11 @@
6263
ansible.builtin.shell: |
6364
{{%- if not 'debian' in product %}}
6465
set -o pipefail{{% endif %}}
65-
grep -ozP "action\s*\(\s*type\s*=\s*\"omfile\"[^\)]*\)" {{ item.1.path }} | \
66-
grep -aoP "\bFile\s*=\s*\"([/[:alnum:][:punct:]]*)\"\s*\)" | \
66+
grep -iozP "action\s*\(\s*type\s*=\s*\"omfile\"[^\)]*\)" {{ item.1.path }} | \
67+
grep -iaoP "\bFile\s*=\s*\"([/[:alnum:][:punct:]]*)\"\s*\)" | \
6768
grep -oE "\"([/[:alnum:][:punct:]]*)\"" | \
68-
tr -d "\""|| true
69+
tr -d "\"" | \
70+
grep -v '^/dev/' || true
6971
loop: "{{ rsyslog_config_files.results | default([]) | subelements('files') }}"
7072
register: log_files_new
7173
changed_when: False

shared/templates/rsyslog_logfiles_attributes_modify/bash.template

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,12 @@ done
7777
# extract possibly multiline action omfile expressions
7878
# extract File="logfile" expression
7979
# match only "logfile" expression
80+
# exclude /dev/* paths (e.g., /dev/console)
8081
for LOG_FILE in "${RSYSLOG_CONFIG_FILES[@]}"
8182
do
8283
ACTION_OMFILE_LINES=$(grep -iozP "action\s*\(\s*type\s*=\s*\"omfile\"[^\)]*\)" "${LOG_FILE}")
8384
OMFILE_LINES=$(echo "${ACTION_OMFILE_LINES}"| grep -iaoP "\bFile\s*=\s*\"([/[:alnum:][:punct:]]*)\"\s*\)")
84-
LOG_FILE_PATHS+=("$(echo "${OMFILE_LINES}"| grep -oE "\"([/[:alnum:][:punct:]]*)\""|tr -d "\"")")
85+
LOG_FILE_PATHS+=("$(echo "${OMFILE_LINES}"| grep -oE "\"([/[:alnum:][:punct:]]*)\""|tr -d "\"" | grep -v "^/dev/")")
8586
done
8687

8788
# Ensure the correct attribute if file exists

0 commit comments

Comments
 (0)