23 lines
1.2 KiB
Bash
23 lines
1.2 KiB
Bash
uid_min=$(awk '$1 == "UID_MIN" {print $2}' /etc/login.defs)
|
|
admin=$(pick wheel sudo)
|
|
field() { getent passwd "$1" | cut -d: -f"$2"; }
|
|
|
|
task 1 "UID_MIN found"
|
|
need "/root/lab-answers/1 has UID_MIN from /etc/login.defs" '[ -n "$uid_min" ] && [ "$(answer 1)" = "$uid_min" ]'
|
|
|
|
task 2 "skel bin, labuser, labgroup and service account labsvc"
|
|
need "/etc/skel/bin is a directory" '[ -d /etc/skel/bin ]'
|
|
need "user labuser exists" id labuser
|
|
need "labuser's comment is Lab User" '[ "$(field labuser 5)" = "Lab User" ]'
|
|
need "labuser's shell is /bin/bash" '[ "$(field labuser 7)" = /bin/bash ]'
|
|
need "labuser's home directory has bin from /etc/skel" '[ -d "$(field labuser 6)/bin" ]'
|
|
need "labuser is in group labgroup" 'id -nG labuser | grep -qw labgroup'
|
|
need "user labsvc exists" id labsvc
|
|
need "labsvc is a system account (UID below UID_MIN)" '[ "$(id -u labsvc)" -lt "$uid_min" ]'
|
|
need "labsvc has no home directory" '[ ! -d "$(field labsvc 6)" ]'
|
|
need "labsvc can't log in (nologin shell)" '[[ "$(field labsvc 7)" == */nologin ]]'
|
|
|
|
task 3 "labuser in labgroup and the administrators' group"
|
|
need "labuser is in $admin" 'id -nG labuser | grep -qw "$admin"'
|
|
need "labuser is still in labgroup" 'id -nG labuser | grep -qw labgroup'
|