#!/bin/bash # Show only users with password expiry date set (not "never") and show the expiry date. # one-liner: # awk -F: '$3 >= 1000 && $7 !~ /(nologin|false)$/ {print $1}' /etc/passwd | while read -r user; do expiry=$(chage -l "$user" 2>/dev/null | awk -F': ' '/^Password expires/{print $2}'); [ -n "$expiry" ] && [ "$expiry" != "never" ] && printf '\n%s\nPassword expires\t: %s\n' "$user" "$expiry"; done awk -F: '$3 >= 1000 && $7 !~ /(nologin|false)$/ {print $1}' /etc/passwd | while read -r user; do expiry=$(chage -l "$user" 2>/dev/null | awk -F': ' '/^Password expires/{print $2}') if [ -n "$expiry" ] && [ "$expiry" != "never" ]; then printf '\n%s\nPassword expires\t: %s\n' "$user" "$expiry" fi done