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.


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


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

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


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.


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,

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.