¿Comando para enumerar todos los usuarios con su UID?

15

¿Cómo puedo enumerar todos los usuarios junto con sus UID? Quiero hacer esto desde la terminal.

llamar
fuente
cat / etc / passwd
Panther

Respuestas:

17

Lista de todos los usuarios con una /homecarpeta:

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

o todos los usuarios con UID >= 1000:

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

una combinación

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

o para todas las entradas

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

Más información aquí.

AB
fuente
10

Puede encontrarlo fácilmente simplemente usando cut:

cut -d: -f1,3 /etc/passwd
  • -d:establece el delimitador como :paracut

  • -f1,3extrae los campos 1 y 3 solo delimitados por :del /etc/passwdarchivo

Comprueba man cutpara tener más idea.

Ejemplo:

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

Si ha ldapconfigurado, para incluir a los ldapusuarios en la salida:

getent passwd | cut -d: -f1,3
heemayl
fuente
1
Debería usar en getent passwdlugar de / etc / passwd ya que este último no incluirá usuarios de ldap
Daenyth
@Daenyth Mi respuesta inicial fue que en realidad ... luego, en aras de la simplificación (y considerando que no ldap), me mudé a la actual ... siempre editado :)
heemayl
1

Alternativamente, para enumerar todos los usuarios, incluida la información de UID y GID.

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

Salud,

Boschko
fuente
0

Como está intentando enumerar el UID y el nombre de usuario, el siguiente comando funciona mejor en Solaris. Tienen dos awk

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

Mr_Macc
fuente
0

Creo que la forma más fácil es tener webmin en su servidor y simplemente ir a Sistema> Usuarios y grupos y allí tiene una lista bien formateada con todos los nombres de usuario y grupos con sus uid, directorio de inicio, etc.

MitchellK
fuente