Cómo enumerar todos los usuarios en Linux

Los usuarios son el componente más importante de un sistema Linux. Linux proporciona comandos integrados a los administradores que les permiten administrar a los usuarios de manera eficiente. Hay uno para crear usuarios, eliminar usuarios y cambiar permisos de usuario. Pero, ¿qué pasa con la lista de todos los usuarios que están presentes actualmente en un sistema?

En este artículo, analizaremos cómo puede obtener una lista de todos los usuarios en Linux, junto con una breve guía para verificar si un usuario existe en un sistema o no.

Cómo mostrar una lista de todos los usuarios en Linux

Cuando crea un nuevo usuario, el nombre de usuario, la contraseña y otros detalles se almacenan en archivos específicos en una máquina Linux. Afortunadamente, Linux le permite leer y modificar dichos archivos sin ninguna restricción. Con estos archivos, puede conocer información relacionada con los usuarios, como sus nombres de usuario, el recuento de usuarios y más.

Usando el archivo Passwd

El archivo passwd es un archivo de texto que contiene los registros de contraseñas de todos los usuarios que están presentes actualmente en su sistema. Este archivo se encuentra en el directorio / etc en su almacenamiento local y contiene la siguiente información:

  1. Nombres de usuario
  2. Contraseñas encriptadas
  3. ID de usuario
  4. ID de grupo del usuario
  5. Nombre completo
  6. El directorio / home del usuario
  7. Shell de inicio de sesión del usuario

Escriba cat / etc / passwd o menos / etc / passwd en su terminal para leer el archivo de texto. Al abrir el archivo / etc / passwd se generará una salida similar a esta.

 root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh

La salida mencionada contiene siete campos que contienen información relacionada con los usuarios. Estos campos están separados por un delimitador, en este caso, dos puntos. Cada fila de la salida denota un solo usuario.

Para obtener una lista de todos los nombres de usuario con la ayuda del archivo passwd :

 awk -F: '{ print $1}' /etc/passwd

Awk es una utilidad de línea de comandos que permite a los usuarios de Linux crear programas simples de "una línea" que realizan operaciones rápidas desde la terminal. En el código mencionado anteriormente:

  1. -F significa Separador de campo. Dado que el carácter de dos puntos es el delimitador en el archivo / etc / passwd , pasamos los dos puntos como separador en el comando awk.
  2. {print $ 1} indica al sistema que imprima el primer campo. En este caso, el primer campo es el nombre de usuario de los usuarios.
  3. El archivo / etc / passwd contiene los datos relacionados con los usuarios.

La ejecución del comando anterior generará los nombres de usuario de todos los usuarios. Dado que el archivo / etc / passwd contiene usuarios del sistema, la salida también incluirá sus nombres de usuario.

 root
daemon
bin
sys
sync
games
man

Puede modificar ligeramente el comando awk para imprimir los nombres completos de los usuarios. Escriba el siguiente comando para mostrar los nombres completos de los usuarios en Linux:

 awk -F: '{ print $5}' /etc/passwd

Dado que los usuarios del sistema tienen el mismo nombre de usuario y nombre completo, no notará ninguna diferencia en la salida. Solo los usuarios que haya agregado a su sistema tendrán diferentes nombres de usuario y nombres completos.

Alternativamente, también puede usar cortar en lugar del comando awk. La sintaxis de cut es bastante similar a la del comando awk.

Para imprimir los nombres de usuario en Linux usando cut:

 cut -d: f1 /etc/passwd

Aquí, -d es el delimitador, f1 indica el primer campo (nombre de usuario) y / etc / passwd es el archivo de texto que contiene los datos.

Para imprimir los nombres de los usuarios que utilizan cut:

 cut -d: f5 /etc/passwd

De manera similar, puede generar otros campos desde el archivo / etc / passwd simplemente reemplazando f5 con f1-f7 .

Relacionado Cómo cambiar su contraseña de Linux

Lista de usuarios con el comando getent

El comando getent imprime el contenido de archivos de texto importantes que actúan como una base de datos para el sistema. Archivos como / etc / passwd y /etc/nsswitch.conf contienen información relacionada con los usuarios y las redes respectivamente y se pueden leer usando el comando getent.

Para imprimir el contenido del archivo / etc / passwd usando getent:

 getent passwd

La salida contendrá siete campos diferentes separados por dos puntos. Cada campo está reservado para información particular, incluidos los nombres de usuario y las rutas del directorio de inicio de los usuarios.

 root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh

Puede encadenar el comando getent con awk o cut para obtener solo la lista de nombres de usuario.

 getent passwd | awk -F: '{print $1}'
getent passwd | cut -d: -f1

Para imprimir los nombres completos de los usuarios:

 getent passwd | awk -F: '{print $5}'
getent passwd | cut -d: -f5

Compruebe si un usuario existe o no

En algunas situaciones, es posible que desee comprobar si existe un usuario en su sistema Linux o no. El comando grep es útil cuando desea tomar un patrón de texto específico de un archivo.

Puede utilizar cualquiera de los siguientes comandos para comprobar la existencia de un usuario.

 compgen -u | grep username
getent passwd | grep username

Si el usuario existe, la información de inicio de sesión asociada con él se mostrará en la pantalla. Por otro lado, si el usuario no está presente en el sistema, se producirá un error.

Para verificar si un usuario existe en un sistema sin usar grep:

 getent passwd username

También puede canalizar el comando getent o compgen con grep y echo para mostrar una salida personalizada.

 getent passwd | grep -q username && echo "User found" || echo "User not found"
compgen -u | grep -q username && echo "User found" || echo "User not found"

El comando anterior imprimirá "Usuario encontrado" si el usuario existe en el sistema, y ​​"Usuario no encontrado" si no es así.

Cuente el número de usuarios en un sistema

Para contar la cantidad de usuarios que existen en un sistema Linux:

 compgen -u | wc -l
getent passwd | wc -l

En los comandos anteriores, compgen y getent son responsables de mostrar la lista que contiene todos los usuarios y otra información relacionada con ellos. El wc significa recuento de palabras y se utiliza para contar el número de palabras o líneas en la salida. La bandera -l denota líneas .

Verificación de cuentas de usuario en Linux

Todo administrador de Linux debe saber cómo puede gestionar y administrar a otros usuarios en un sistema. Dominar los comandos de Linux que le permiten crear, eliminar, controlar y enumerar a otros usuarios es una excelente manera de comenzar con la administración de usuarios.

Sentirse cómodo con el entorno Linux debe ser su primer objetivo si es un principiante. Hay ciertas cosas que debe hacer justo después de instalar su primera distribución de Linux. Aprender algunos comandos básicos es uno de ellos y es esencial para realizar tareas informáticas simples en Linux.