User Initialization Files Must Be Owned By the Primary User

Classification:

compliance

Framework:

Control:

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.

Remediation

Shell script

The following script can be run on the host to remediate the issue.

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.