TMAegis
More rules for cos

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