User Initialization Files Must Be Owned By the Primary User
Description
Set the owner of the user initialization files for interactive users to
the primary owner with the following command:
$ sudo chown USER /home/USER/.*
This rule ensures every initialization file related to an interactive user
is owned by an interactive user.
Rationale
Local initialization files are used to configure the user’s shell environment
upon logon. Malicious modification of these files could compromise accounts upon
logon.
Shell script
The following script can be run on the host to remediate the issue.
#!/bin/bash
awk -F':' '{ if ($3 >= 1000 && $3 != 65534) system("chown -f " $3" "$6"/.[^\.]?*") }' /etc/passwd
Ansible playbook
The following playbook can be run with Ansible to remediate the issue.
- name: Ensure interactive local users are the owners of their respective initialization
files
ansible.builtin.command:
cmd: awk -F':' '{ if ($3 >= 1000 && $3 != 65534) system("chown -f " $3" "$6"/.[^\.]?*")
}' /etc/passwd
tags:
- accounts_user_dot_user_ownership
- low_complexity
- low_disruption
- medium_severity
- no_reboot_needed
- restrict_strategy
Warning
Due to OVAL limitation, this rule can report a false negative in a
specific situation where two interactive users swap the ownership of
their respective initialization files.