Cómo listar usuarios en Linux

Cómo listar usuarios en Linux

Computadora portátil Linux que muestra un indicador de bash
fatmawati achmad zaenuri/Shutterstock.com

Linux es un sistema operativo multiusuario, por lo que es fácil crear numerosas cuentas de usuario. Con el tiempo, es fácil perder l. a. noción de qué cuentas se requieren. Los angeles lista de cuentas de usuario lo ayuda a administrarlas.

Cuentas de usuario

Los avances en tecnología a menudo traen sus propios problemas nuevos. Tan pronto como las computadoras pudieron admitir múltiples usuarios, se hizo evidente l. a. necesidad de delimitar y encapsular el trabajo de cada personality del resto. Esto llevó al concepto de cuentas de usuario. Cada usuario tiene una identificación con nombre y una contraseña. Estas son las credenciales que les permiten iniciar sesión en su cuenta. Sus archivos se guardan en un área que es privada para cada usuario.

En un sistema ocupado, es fácil perder de vista qué cuentas ha creado y cuáles ya no son necesarias. Desde el punto de vista de l. a. seguridad, es una mala práctica mantener cuentas de usuario que ya no necesita configurar y acceder a ellas en su computadora. Debes eliminar a esos usuarios.

Incluso si no tiene otras personas usando su computadora, es posible que haya creado algunas cuentas solo para aprender cómo hacerlo, o para aprender y practicar los procesos de administración.

El primer paso es enumerar las cuentas de usuario que están configuradas en su computadora. Eso le permite revisarlos y tomar una decisión sobre cuáles se pueden eliminar. Existen varios métodos para listar usuarios. Independientemente de l. a. distribución que esté utilizando, estas técnicas deberían funcionar para usted sin necesidad de instalar ninguna aplicación o utilidad.

Lista de usuarios con el comando cat

Se mantiene una lista de los usuarios configurados, junto con información sobre cada usuario, en el archivo “/and so forth/passwd”. Este es un archivo de texto que los usuarios regulares pueden mostrar en l. a. ventana de l. a. terminal. No necesitas usar sudo para buscar en el archivo “/and so forth/passwd”.

Podemos usar el cat Comando para enviar el contenido del archivo “/and so forth/passwd” a l. a. ventana del terminal. Esto listará todo el contenido del archivo. Esto significa que también verá las entradas de las cuentas de usuario que pertenecen a los procesos y al sistema, no a las personas.

cat /and so forth/passwd

Enviar el contenido del archivo /etc/passwd a la ventana de terminal con cat

Hay una línea de información densa reportada para cada cuenta de usuario.

El contenido del archivo /etc/passwd

Los angeles información de l. a. cuenta de usuario llamada “dave” contiene estos datos, con dos puntos “:” entre ellos.

  • dave: El nombre de l. a. cuenta de usuario. Por lo normal, el nombre de l. a. personality propietaria de l. a. cuenta.
  • X: Hubo un tiempo en que contenía l. a. contraseña de l. a. cuenta. Hoy en día, las contraseñas se almacenan en el archivo “/and so forth/shadow”. Los angeles “x” significa que l. a. contraseña está en ese archivo.
  • 1000: El ID de usuario para esta cuenta. Todas las cuentas de usuario tienen una identificación numérica única. Las cuentas de usuario regulares generalmente comienzan en 1000, y cada nueva cuenta toma l. a. siguiente identificación gratuita, como 1001, 1002, and so forth.
  • 1000: El ID de grupo del grupo predeterminado al que pertenece el usuario. En circunstancias normales, el grupo predeterminado tiene el mismo valor que el ID de usuario.
  • david,,,: Una colección de información adicional opcional sobre el usuario. Este campo contiene datos con comas “,” entre ellos. Pueden contener cosas como el nombre completo del usuario, el número de su oficina y su número de teléfono. Los angeles entrada de l. a. cuenta de usuario “mary” muestra que su nombre completo es Mary Quinn.
  • /inicio/dave: Los angeles ruta a l. a. carpeta de inicio del usuario.
  • /bin/bash: El shell predeterminado para este usuario.

Si canalizamos l. a. salida de este comando a través del wc utilidad y uso de -l (líneas) opción podemos contar las líneas en el archivo. Eso nos dará l. a. cantidad de cuentas configuradas en esta computadora.

cat /and so forth/passwd | wc -l

Contando el número de cuentas en el archivo /etc/passwd

Esa cifra incluye las cuentas del sistema y los usuarios creados por las aplicaciones. Hay alrededor de 400 usuarios regulares configurados en esta computadora. Es possible que su resultado sea mucho menor.

Con tantas cuentas, es más conveniente usar much less para ver el archivo “/and so forth/passwd”.

much less /and so forth/passwd

Abriendo el archivo /etc/passwd en menos

Utilizando much less también le permite buscar dentro de l. a. salida, si desea buscar una cuenta de usuario en specific.

Buscando la cuenta mary en el archivo /etc/passwd, en menos

El comando awk

Utilizando el awk comando podemos mostrar solo el nombre de usuario. Esto puede ser útil cuando está escribiendo un script que necesita hacer algo con muchas cuentas de usuario. Enumerar los nombres de las cuentas de usuario y redirigirlos a un archivo de texto puede ahorrar mucho tiempo. Todo lo que necesita hacer es copiar y pegar el resto del comando en cada línea.

Le diremos a awk que use los dos puntos “:” como separador de campo y que imprima el primer campo. Usaremos l. a. opción -F (separador de campo).

awk -F: '{print $1}' /and so forth/passwd

Un comando awk para seleccionar solo los nombres de usuario de /etc/passwd

Los nombres de las cuentas de usuario se escriben en l. a. ventana del terminal sin ninguna otra información de l. a. cuenta.

Los nombres de cuenta de usuario que se muestran en la ventana del terminal

El comando de corte

Podemos lograr el mismo tipo de cosas usando el lower dominio. Necesitamos usar el -d (delimitador) y pídale que seleccione solo el primer campo, usando el -f (campos) opción.

cutr -d: -f1

Usar el comando de corte para mostrar solo los nombres de usuario del archivo /etc/passwd

Esto enumera todas las cuentas de usuario, incluido el sistema y otras cuentas no humanas.

El comando compgen

Él compgen El comando se puede usar con el -u (usuario) opción para listar las cuentas de usuario. Canalizaremos l. a. salida a través del column Comando para enumerar las cuentas de usuario en columnas, en lugar de una lista larga con un solo nombre de usuario por línea.

compgen -u | column

Uso de los comandos compgen y column para enumerar los nombres de cuentas de usuario del archivo /etc/passwd en columnas

Nuevamente, las primeras cuentas de usuario enumeradas pertenecen a procesos, no a humanos.

UID MIN y UID MAX

Las cuentas de usuario reciben una identificación numérica, que vimos anteriormente. Por lo normal, las cuentas de usuarios humanos regulares comienzan en 1000, y las cuentas de usuarios no humanos del sistema comienzan en 0. El ID de l. a. cuenta raíz es 0.

Si podemos verificar las identificaciones de usuario más bajas y más altas posibles, podemos usar esa información para seleccionar las cuentas de usuario que se encuentran entre esos dos valores. Eso nos permitirá seleccionar solo las cuentas de usuario que pertenecen a personas reales.

Linux realiza un seguimiento de estos dos valores utilizando parámetros de configuración llamados UID_MIN y UID_MAX . Estos se guardan en el archivo “/and so forth/login.defs”. Podemos ver fácilmente estos valores usando grep.

vamos a usar el -E (regex extendido) opción. Nuestra cadena de búsqueda busca líneas que comiencen con “UID_MIN” o “UID_MAX” en el archivo “/and so forth/login.defs”. el intercalado”^” representa el comienzo de una línea.

grep -E '^UID_MIN|^UID_MAX' /and so forth/login.defs

El rango de ID de usuario en esta computadora es de 1000 a 60,000.

RELACIONADA: Cómo usar expresiones regulares (regexes) en Linux

El Comando getente

Él getent El comando lee información de las bases de datos del sistema. Podemos decirle que enumere las entradas en el archivo “/and so forth/passwd” usando “passwd” como parámetro.

getent passwd

Usar getent para volcar el archivo /etc/passwd en la ventana del terminal

Esto nos da l. a. misma lectura que podemos obtener usando cat. Pero donde getent brilla es aceptando valores conocidos como “claves”. Una clave dicta qué información getent informes sobre. Si queremos ver l. a. entrada de un solo usuario, podemos pasar su nombre de cuenta de usuario en l. a. línea de comando.

getent passwd Sarah

Tenga en cuenta que el nombre de l. a. cuenta de usuario distingue entre mayúsculas y minúsculas.

getent passwd sarah

Buscando una cuenta de usuario único con getent

También podemos pasar los límites awesome e inferior de las ID de cuenta de usuario que queremos ver. Para ver absolutamente todas las cuentas de usuarios regulares, podemos usar los valores de UID_MIN y UID_MAX.

getent passwd {1000..60000}

Uso de ID de cuenta superior e inferior con getent

Esto toma algún tiempo para ejecutarse. Eventualmente, volverá al símbolo del sistema.

El contenido del archivo /etc/passwd enviado a la ventana del terminal por getent

Los angeles razón del largo tiempo de ejecución es que getent intenta encontrar coincidencias para todos los valores de l. a. cuenta de usuario hasta 60000.

Veamos cuál es el ID de cuenta de usuario más alto. Usaremos el lower comando, pero esta vez le pediremos el campo tres, el campo de ID de usuario. Canalizaremos l. a. salida a través de kind y america el -g (clasificación numérica normal) opción.

lower -d: -f3 /and so forth/passwd | kind -g

El comando para canalizar la salida del corte al comando de ordenación

El valor de ID más alto de una cuenta de usuario de propiedad humana es 1401.

Una lista ordenada de ID de cuentas de usuario

El ID de usuario 65534 se asigna al concepto de sistema de “nadie”.

getent passwd {65534..65534}

El usuario del sistema nadie, con ID 65534

Así que sabemos que en lugar de usar el UID_MAX valor de 60000, en esta computadora podemos usar un valor más realista como 1500. Eso acelerará las cosas muy bien. También canalizaremos l. a. salida a través de lower para extraer solo los nombres de las cuentas de usuario.

contraseña getent {1000..1500} | cortar -d: -f1

La salida de getent canalizada a través de corte para enumerar los nombres de cuentas de usuario

Los usuarios aparecen en l. a. lista y regresamos inmediatamente al símbolo del sistema.

En lugar de canalizar l. a. salida a través lowercanalicemos l. a. salida a través de wc y cuenta las líneas una vez más. Eso nos dará el número de cuentas de usuario “reales”.

getent passwd {1000..1500} | wc -l

Contando las cuentas de usuario regulares con getent y wc

Ahora podemos ver que en esta computadora, definitivamente, hay 400 cuentas de usuario configuradas, de propiedad humana.

Poder y Simplicidad

Una de estas técnicas seguramente se adaptará a sus necesidades cuando necesite revisar las cuentas de usuario en una computadora con Linux. Estos comandos deben estar presentes en todas las distribuciones, y ninguno de ellos requiere sudo acceso, por lo que todos están disponibles para todos los usuarios.

RELACIONADA: Cómo controlar el acceso a sudo en Linux