Você pode obter os grupos aos quais um usuário pertence com id -Gn username
.
Para contar o número de administradores:
who | cut -d ' ' -f 1 |
while read user; do
id -Gn "$user"
done | grep -F -w "admin" | wc -l
Isso usa o comando who
para obter uma lista de usuários que efetuaram login, extrai o nome de usuário simples usando cut
e faz uma pesquisa de grupo para cada um deles. Então os grupos são grepped para a string admin
e o resultado é contado.
Alternativamente, faça isso de trás para ver se um administrador está logado:
who $( awk -F':' '$1 ~ /^admin/ { gsub(",", " ", $4); print $4 }' /etc/group ) | wc -l
O awk
dentro da substituição do comando produzirá todos os usuários que pertencem ao grupo admin
, e o who
verá se eles estão conectados. O número de linhas de saída é então contado. .