Verify Group Who Owns /var/log/*.journal(~) File
이 페이지는 아직 영어로 제공되지 않습니다. 번역 작업 중입니다.
현재 번역 프로젝트에 대한 질문이나 피드백이 있으신 경우
언제든지 연락주시기 바랍니다.Description
To properly set the group owner of /var/log/*.journal(~)
, run the command:
$ sudo chgrp systemd-journal /var/log/*.journal(~)
or
$ sudo chgrp root /var/log/*.journal(~)
Rationale
The /var/log/*.journal(~)
files are system logs managed by the “systemd” service.
Shell script
The following script can be run on the host to remediate the issue.
#!/bin/bash
if getent group "systemd-journal" >/dev/null 2>&1; then
newgroup="systemd-journal"
elif getent group "root" >/dev/null 2>&1; then
newgroup="root"
fi
if [[ -z ${newgroup} ]]; then
echo "systemd-journal and root is not a defined group on the system"
exit 1
fi
find /var/log/ -type f ! -group systemd-journal ! -group root -regextype posix-extended -regex '.*\.journal[~]?' -exec chgrp -L $newgroup {} \;
Ansible playbook
The following playbook can be run with Ansible to remediate the issue.
- name: Check that the systemd-journal group is defined
getent:
database: group
key: systemd-journal
ignore_errors: true
when: file_groupowner_var_log_journal_newgroup is undefined
tags:
- configure_strategy
- file_groupowner_var_log_journal
- low_complexity
- low_disruption
- medium_severity
- no_reboot_needed
- name: Set the file_groupowner_var_log_journal_newgroup variable if systemd-journal
found
set_fact:
file_groupowner_var_log_journal_newgroup: systemd-journal
when: ansible_facts.getent_group["systemd-journal"] is defined
tags:
- configure_strategy
- file_groupowner_var_log_journal
- low_complexity
- low_disruption
- medium_severity
- no_reboot_needed
- name: Check that the root group is defined
getent:
database: group
key: root
ignore_errors: true
when: file_groupowner_var_log_journal_newgroup is undefined
tags:
- configure_strategy
- file_groupowner_var_log_journal
- low_complexity
- low_disruption
- medium_severity
- no_reboot_needed
- name: Set the file_groupowner_var_log_journal_newgroup variable if root found
set_fact:
file_groupowner_var_log_journal_newgroup: root
when: ansible_facts.getent_group["root"] is defined
tags:
- configure_strategy
- file_groupowner_var_log_journal
- low_complexity
- low_disruption
- medium_severity
- no_reboot_needed
- name: Find /var/log/ file(s) matching .*\.journal[~]? recursively
command: find /var/log/ -type f ! -group systemd-journal ! -group root -regextype
posix-extended -regex ".*\.journal[~]?"
register: files_found
changed_when: false
failed_when: false
check_mode: false
tags:
- configure_strategy
- file_groupowner_var_log_journal
- low_complexity
- low_disruption
- medium_severity
- no_reboot_needed
- name: Ensure group owner on /var/log/ file(s) matching .*\.journal[~]?
file:
path: '{{ item }}'
group: '{{ file_groupowner_var_log_journal_newgroup }}'
state: file
with_items:
- '{{ files_found.stdout_lines }}'
tags:
- configure_strategy
- file_groupowner_var_log_journal
- low_complexity
- low_disruption
- medium_severity
- no_reboot_needed