Comando para obter a contagem da lista de conta de usuário bloqueada, desbloqueada, expirada

1

Eu tenho esses três comandos para obter a contagem do número de usuários, número de conta de usuário bloqueada, número de conta de usuário desbloqueada, número de senha definido para nunca expirar.

    cut -d: -f1 /etc/passwd|wc -l
    cat /etc/passwd | cut -d : -f 1 | awk '{ system("passwd -S " $0) }'|wc -l
 awk -F: '{ system("passwd -S " $1)}' /etc/passwd | grep " PS "|wc -l
    cut -f 1 -d: /etc/passwd | xargs -n 1 -I {} bash -c ' echo -n {}" "; chage -l {} | fgrep "Password expires"' | column -t|wc -l

Existe uma maneira pela qual eu posso adicionar um comando echo a ele e / ou usar um comando para obter todas essas informações e também obter informações da conta definida como expirada? echo "Número de usuários = xx", número de conta de usuário bloqueada = xx, número de senha de usuário definida como nunca expirar = xx, número de usuários configurados como expirados?

Obrigado

    
por Zafreen 23.02.2017 / 17:52

1 resposta

2

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"
    
por 23.02.2017 / 19:45