TMA-COS-6.2.15
Ensure all groups in /etc/passwd exist in /etc/group
MediumLevel 2Automatedcos
Description
Over time, system administration errors and changes can lead to groups being defined in /etc/passwd but not in /etc/group . Groups defined in the /etc/passwd file but not in the /etc/group file pose a threat to system security since group permissions are not properly managed.
How it is checked
Audit method: Shell command
shell
alt0() { o=$(bash -c '#!/usr/bin/env bash
{
a_passwd_group_gid=("$(awk -F: '"'"'{print $4}'"'"' /etc/passwd | sort -u)")
a_group_gid=("$(awk -F: '"'"'{print $3}'"'"' /etc/group | sort -u)")
a_passwd_group_diff=("$(printf '"'"'%s\n'"'"' "${a_group_gid[@]}" "${a_passwd_group_gid[@]}" | sort | uniq -u)")
while IFS= read -r l_gid; do
awk -F: '"'"'($4 == '"'"'"$l_gid"'"'"') {print " - User: \"" $1 "\" has GID: \"" $4 "\" which does not exist in /etc/group" }'"'"' /etc/passwd
done < <(printf '"'"'%s\n'"'"' "${a_passwd_group_gid[@]}" "${a_passwd_group_diff[@]}" | sort | uniq -D | uniq)
unset a_passwd_group_gid; unset a_group_gid; unset a_passwd_group_diff
}' 2>&1); [ -z "$o" ] || { echo "step1: $o" | head -c 300; return 1; }; }; if alt0; then echo compliant; fi- Expected output
compliant
How it is fixed
Fix method: Guidance or infrastructure patch
Analyze the output of the Audit step above and perform the appropriate action to correct any discrepancies found.
Properties
- Operating systems
- Any
- Tags
- container-optimized-oscos
- Reference
- CIS Google Container-Optimized OS Benchmark v1.2.0 - 6.2.15 Ensure all groups in /etc/passwd exist in /etc/group
Check this host
Run this on a machine you are allowed to audit. The scan is read-only.
shell
tmaegis scan --target cos --level 2