Comando para listar todos os usuários com seu UID?

15

Como posso listar todos os usuários junto com seus UIDs? Eu quero fazer isso no terminal.

becko
fonte
cat / etc / passwd
Panther

Respostas:

17

Listar todos os usuários com uma /homepasta:

awk -F: '/\/home/ {printf "%s:%s\n",$1,$3}' /etc/passwd

ou todos os usuários com UID >= 1000:

awk -F: '($3 >= 1000) {printf "%s:%s\n",$1,$3}' /etc/passwd

uma combinação

awk -F: '/\/home/ && ($3 >= 1000) {printf "%s:%s\n",$1,$3}' /etc/passwd

ou para todas as entradas

awk -F: '{printf "%s:%s\n",$1,$3}' /etc/passwd

Mais informações aqui

AB
fonte
10

Você pode encontrá-lo facilmente usando cut:

cut -d: -f1,3 /etc/passwd
  • -d:define o delimitador como :paracut

  • -f1,3extrai os campos 1 e 3 apenas delimitados por :do /etc/passwdarquivo

Marque man cutpara ter mais ideia.

Exemplo:

$ cut -d: -f1,3 /etc/passwd
root:0
daemon:1
bin:2
sys:3
sync:4
games:5
......

Se você ldapconfigurou, para incluir os ldapusuários na saída:

getent passwd | cut -d: -f1,3
heemail
fonte
11
Você deve usar getent passwdem vez de / etc / passwd uma vez que este não incluirá usuários LDAP
Daenyth
@Daenyth Minha resposta inicial era que actually..then por uma questão de simplificação (e não considerando ldap) i mudaram-se para teh atual one..anyway editado :)
heemayl
0

Como você está tentando listar o UID e o nome de usuário, o comando abaixo funciona melhor no Solaris. Eles têm dois awk

awk -F: '($ 3> = 1000) {printf "% s:% s", $ 1, $ 3}' / etc / passwd

Mr_Macc
fonte
0

Acho que a maneira mais fácil é ter o webmin no seu servidor e simplesmente ir para Sistema> Usuários e Grupos e aí você tem uma lista bem formatada com todos os nomes de usuário e grupos com o diretório inicial, etc.

MitchellK
fonte
0

Como alternativa, liste todos os usuários, incluindo informações de UID e GID.

for user in $(cat /etc/passwd | cut -f1 -d":"); do id $users; done 

Felicidades,

Boschko
fonte