#!/bin/bash awk -F: '($1!~/(halt|sync|shutdown)/ && $7!~/^(\/usr)?\/sbin\/nologin(\/)?$/ && $7!~/(\/usr)?\/bin\/false(\/)?$/) { print $1 " " $6 }' | while read -r user dir do if [ ! -d "$dir" ]; then echo "User: \"$user\" home directory: \"$dir\" does not exist, creating home directory" mkdir "$dir" chmod g-w,o-rwx "$dir" chown "$user" "$dir" else owner=$(stat -L -c "%U" "$dir") if [ "$owner" != "$user" ]; then chmod g-w,o-rwx "$dir" chown "$user" "$dir" fi fi done