Você pode combinar duas das três com muita facilidade (contagem de usuários e contagem de contas bloqueadas) com awk
ed passwd -Sa
, mas você terá que fazer um loop em torno de chage
para exibir as senhas expiradas. / p>
passwd -Sa | awk 'BEGIN {lockedusers=0} $2 ~ /L/ {lockedusers++} END {print "Total users:",NF;print "Locked users:",lockedusers}'
neuser=0
for user in $(cut -f1 -d: /etc/passwd); do
if chage -l "$user" | grep -i '^Password expires' | grep -q never; then
neuser=$((neuser+1))
fi
done
echo "Non-expiring users: $neuser"
Se sua implementação de passwd
não tiver -a
(por exemplo, distribuições derivadas da Red Hat), você pode usar um loop for
similar:
neuser=0
for user in $(cut -f1 -d: /etc/passwd); do
if chage -l "$user" | grep -i '^Password expires' | grep -q never; then
neuser=$((neuser+1))
fi
passwd -S "$user"
done | awk 'BEGIN {lockedusers=0} $2 ~ /L/ {lockedusers++} END {print "Total users:",NF;print "Locked users:",lockedusers}'
echo "Non-expiring users: $neuser"