6.2.16 Ensure no duplicate UIDs exist (Scored)
Profile Applicability
Level 1 - Server Level 1 - Workstation
Description
Although the useradd program will not let you create a duplicate User ID (UID), it is possible for an administrator to manually edit the /etc/passwd file and change the UID field.
Rationale
Users must be assigned unique UIDs for accountability and to ensure appropriate access protections.
Audit
Run the following script and verify no results are returned:
#!/bin/bash
cat /etc/passwd | cut -f3 -d":" | sort -n | uniq -c | while read x ; do
[ -z "${x}" ] && break
set - $x
if [ $1 -gt 1 ]; then
users=`awk -F: '($3 == n) { print $1 }' n=$2 /etc/passwd | xargs`
echo "Duplicate UID ($2): ${users}"
fi
done
Remediation
Based on the results of the audit script, establish unique UIDs and review all files owned by the shared UIDs to determine which UID they are supposed to belong to.