Grep para grupos com mais de um usuário

2

Estamos nos preparando para migrar para o Samba baseado no Active Directory, do domínio de estilo antigo. Atualmente, todos os nossos grupos são planos, os usuários pertencem a grupos, mas os grupos não podem pertencer a outros grupos. Como eu quero mudar isso, preciso listar todos os grupos com usuários.

O problema é que existem milhares de usuários e milhares de grupos. O que eu preciso é listar os grupos com 2 ou mais membros, então mostre apenas o nome do grupo na linha de comando. Isso deve eliminar grupos de usuários ou grupos com apenas um usuário.

Como posso fazer isso no Debian?

    
por Canadian Luke 20.03.2018 / 17:39

3 respostas

3

Provavelmente não é a melhor maneira de fazer isso, mas isso pode funcionar:

awk -F: '$NF ~ "," { print $1 }' /etc/group
    
por 20.03.2018 / 17:44
5

Geralmente,

getent group | awk -F ':' '$4 ~ "," {print $1}'

Se o quarto campo delimitado por dois pontos (lista de usuários) da lista de grupos contiver uma vírgula, imprima o primeiro campo delimitado por dois pontos (nome do grupo).

    
por 20.03.2018 / 18:10
0

como os membros do grupo são delimitados por vírgulas, apenas grupos com vários membros terão vírgulas. A partir dessas linhas de arquivo de grupo, mostre apenas o conteúdo da linha antes dos primeiros dois pontos.

grep , /etc/group | cut -d: -f 1
    
por 20.03.2018 / 23:07