Conte o número de usuários em grupos

0

Existem arquivos / etc / group. O formato é "nome do grupo: senha: identificador: lista de usuários separados por espaços" Como imprimir NOME do grupo com maior número de usuários? Obrigado.

    
por Zhyhalo Oleksandr 29.06.2017 / 14:48

1 resposta

2
getent group | awk -F '[,:]' '{ print $1, NF - 3 }' | sort -k2,2n

Isto produzirá uma lista de nomes de grupos seguidos pelo número de membros do grupo, classificados pelo número de membros do grupo. Estou assumindo que o texto da pergunta está errado e que a lista de membros do grupo é separada por vírgula.

Seria fácil analisar o resultado disso para escolher o (s) que tem mais membros do grupo.

getent group obterá a lista atual de grupos no mesmo formato do arquivo /etc/group . Este comando também consultará um serviço de diretório como NIS / YP ou LDAP, se estiver em uso.

O código awk dividirá as linhas em campos com base em vírgulas ou dois pontos e imprimirá o primeiro campo (o nome do grupo) seguido pelo número total de campos menos três (o menos três é para não contar o nome do grupo , senha e campos GID).

O% final sort fará uma classificação numérica baseada apenas na segunda coluna, que é o número de membros do grupo.

    
por 29.06.2017 / 15:05