From 044c78452b84758a741855a319c0dade2c64a9b2 Mon Sep 17 00:00:00 2001 From: Brian Ginsbach Date: Thu, 19 Mar 2020 16:38:37 -0500 Subject: [PATCH 1/2] Add AUTH-9234 for NetBSD --- include/tests_authentication | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/include/tests_authentication b/include/tests_authentication index b4520035..2b3fcae3 100644 --- a/include/tests_authentication +++ b/include/tests_authentication @@ -331,7 +331,7 @@ # Notes : AIX: 100+ # HPUX: 100+ # macOS doesn't have any user info in /etc/passwd, users are managed with opendirectoryd) - # OpenBSD/NetBSD: unknown + # OpenBSD/NetBSD: 1000-60000, excluding 32767 (default) # Arch Linux / CentOS / Ubuntu: 1000+ Register --test-no AUTH-9234 --weight L --network NO --category security --description "Query user accounts" if [ ${SKIPTEST} -eq 0 ]; then @@ -373,6 +373,23 @@ fi ;; + "NetBSD") + if [ -f ${ROOTDIR}etc/usermgmt.conf ]; then + UID_RANGE=$(${GREPBINARY} "^range" ${ROOTDIR}etc/usermgmt.conf | ${AWKBINARY} '{ sub(/\.\./, "-", $2); print $2 }') + fi + if [ -n "${UID_RANGE}" ]; then + LogText "Result: found configured user id range specified: ${UID_RANGE}" + UID_MIN=$(echo $UID_RANGE | ${AWKBINARY} -F- '{ print $1 }') + UID_MAX=$(echo $UID_RANGE | ${AWKBINARY} -F- '{ print $2 }') + else + UID_MIN=1000 + UID_MAX=60000 + LogText "Result: no configured user id range specified; using default ${UID_MIN}-${UID_MAX}" + fi + LogText "NetBSD real users output (ID = 0, or ${UID_MIN}-${UID_MAX}, but not 32767):" + FIND=$(${AWKBINARY} -v UID_MIN="${UID_MIN}" -v UID_MAX="${UID_MAX}" -F: '($3 >= UID_MIN && $3 <= UID_MAX && $3 != 32767) || ($3 == 0) { print $1","$3 }' /etc/passwd) + ;; + "OpenBSD") LogText "OpenBSD real users output (ID = 0, or 1000-60000, but not 32767):" FIND=$(${AWKBINARY} -F: '($3 >= 1000 && $3 <= 60000 && $3 != 32767) || ($3 == 0) { print $1","$3 }' /etc/passwd) From f56c3b5f94c57732ceffe306eb12db4b50df095c Mon Sep 17 00:00:00 2001 From: Brian Ginsbach Date: Sat, 21 Mar 2020 16:16:34 -0500 Subject: [PATCH 2/2] Combine NetBSD and OpenBSD AUTH-9234 check Both NetBSD and OpenBSD have `useradd(8)`, so they can share logic checking `/etc/usermgmt.conf` for the default user UID range. --- include/tests_authentication | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/include/tests_authentication b/include/tests_authentication index 2b3fcae3..9496380b 100644 --- a/include/tests_authentication +++ b/include/tests_authentication @@ -373,7 +373,7 @@ fi ;; - "NetBSD") + "NetBSD"|"OpenBSD") if [ -f ${ROOTDIR}etc/usermgmt.conf ]; then UID_RANGE=$(${GREPBINARY} "^range" ${ROOTDIR}etc/usermgmt.conf | ${AWKBINARY} '{ sub(/\.\./, "-", $2); print $2 }') fi @@ -386,15 +386,10 @@ UID_MAX=60000 LogText "Result: no configured user id range specified; using default ${UID_MIN}-${UID_MAX}" fi - LogText "NetBSD real users output (ID = 0, or ${UID_MIN}-${UID_MAX}, but not 32767):" + LogText "${OS} real users output (ID = 0, or ${UID_MIN}-${UID_MAX}, but not 32767):" FIND=$(${AWKBINARY} -v UID_MIN="${UID_MIN}" -v UID_MAX="${UID_MAX}" -F: '($3 >= UID_MIN && $3 <= UID_MAX && $3 != 32767) || ($3 == 0) { print $1","$3 }' /etc/passwd) ;; - "OpenBSD") - LogText "OpenBSD real users output (ID = 0, or 1000-60000, but not 32767):" - FIND=$(${AWKBINARY} -F: '($3 >= 1000 && $3 <= 60000 && $3 != 32767) || ($3 == 0) { print $1","$3 }' /etc/passwd) - ;; - "Solaris") LogText "Solaris real users output (ID =0, or 100+, but not 60001/65534):" FIND=$(${AWKBINARY} -F: '($3 >= 100 && $3 != 60001 && $3 != 65534) || ($3 == 0) { print $1","$3 }' /etc/passwd)