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 la noción de qué cuentas se requieren. La 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 la necesidad de delimitar y encapsular el trabajo de cada persona del resto. Esto condujo 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 la 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 la 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 “/etc/passwd”. Este es un archivo de texto que los usuarios regulares pueden mostrar en la ventana de la terminal. No necesita utilizar sudopara buscar en el archivo “/etc/passwd”.

Podemos usar el catcomando para enviar el contenido del archivo “/etc/passwd” a la ventana de la 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.

gato /etc/contraseña

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.

Relacionado:  Cómo cambiar el nombre de tus AirPods

El contenido del archivo /etc/passwd

La información de la cuenta de usuario llamada “dave” contiene estos datos, con dos puntos “ :” entre ellos.

  • dave : El nombre de la cuenta de usuario. Por lo general, el nombre de la persona propietaria de la cuenta.
  • x : En un momento, esto contenía la contraseña de la cuenta . Hoy en día, las contraseñas se almacenan en el archivo “/etc/shadow”. La «x» significa que la 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 la siguiente identificación gratuita, como 1001, 1002, etc.
  • 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.
  • dave,,, : 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. La entrada de la cuenta de usuario «mary» muestra que su nombre completo es Mary Quinn.
  • /home/dave : La ruta a la carpeta de inicio del usuario.
  • /bin/bash : el shell predeterminado para este usuario.

Si canalizamos la salida de este comando a través de la wcutilidad y usamos la -lopción (líneas), podemos contar las líneas en el archivo. Eso nos dará la cantidad de cuentas configuradas en esta computadora.

gato /etc/contraseña | 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 probable que su resultado sea mucho menor.

Con tantas cuentas, es más conveniente usar lesspara ver el archivo “/etc/passwd”.

menos /etc/passwd

Abriendo el archivo /etc/passwd en menos

El uso lesstambién le permite buscar dentro de la salida, en caso de que desee buscar una cuenta de usuario en particular.

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

El comando awk

Usando el awkcomando 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.

Relacionado:  Cómo tachar en Microsoft Excel

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

awk -F: '{imprimir $1}' /etc/contraseña

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

Los nombres de las cuentas de usuario se escriben en la ventana del terminal sin ninguna otra información de la 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 cutcomando . Necesitamos usar la -dopción (delimitador) y pedirle que seleccione solo el primer campo, usando la -fopción (campos).

cortar -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

El compgencomando se puede usar con la -uopción (usuario) para enumerar las cuentas de usuario. Canalizaremos la salida a través del columncomando 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 | columna

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 general, las cuentas de usuarios humanos regulares comienzan en 1000, y las cuentas de usuarios no humanos del sistema comienzan en 0. El ID de la 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_MINy UID_MAX. Estos se guardan en el archivo “/etc/login.defs”. Podemos ver fácilmente estos valores usando grep.

Vamos a usar la opción ( regex-E extendida ). Nuestra cadena de búsqueda busca líneas que comiencen con «UID_MIN» o «UID_MAX» en el archivo «/etc/login.defs». El signo de intercalación “ ” representa el comienzo de una línea.^

grep -E '^UID_MIN|^UID_MAX' /etc/login.defs

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

El Comando getente

El getentcomando lee información de las bases de datos del sistema. Podemos decirle que enumere las entradas en el archivo “/etc/passwd” usando “passwd” como parámetro.

obtener contraseña

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

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

obtener contraseña sarah

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

conseguir contraseña sarah

Buscando una cuenta de usuario único con getent

También podemos pasar los límites superior e inferior de las ID de cuenta de usuario que queremos ver. Para ver absolutamente todas las cuentas de usuarios habituales, podemos utilizar los valores de UID_MINy UID_MAX.

obtener contraseña {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.

Relacionado:  Cómo hacer una pregunta de clasificación de formularios de Google

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

El motivo del largo tiempo de ejecución es que  getentintenta encontrar coincidencias para todos los valores de la cuenta de usuario hasta 60000.

Veamos cuál es el ID de cuenta de usuario más alto. Usaremos el cutcomando, pero esta vez pediremos el campo tres, el campo de ID de usuario. Canalizaremos la salida sorty usaremos la -gopción (clasificación numérica general).

cortar -d: -f3 /etc/passwd | ordenar -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».

obtener contraseña {65534..65534}

El usuario del sistema nadie, con ID 65534

Así que sabemos que en lugar de usar el UID_MAXvalor de 60000, en esta computadora podemos usar un valor más realista como 1500. Eso acelerará las cosas muy bien. También canalizaremos la salida cutpara 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 la lista y regresamos inmediatamente al símbolo del sistema.

En lugar de canalizar la salida a través cutde , canalicemos la salida wcy contemos las líneas una vez más. Eso nos dará el número de cuentas de usuario «reales».

contraseña getent {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.