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 de los demás. 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 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 necesitas usarsudo
para buscar en el archivo ?/etc/passwd?.
Podemos usar elcat
Comando para enviar el contenido del archivo ?/etc/passwd? a la 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 /etc/passwd
Hay una línea de información densa reportada para cada cuenta de usuario.
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: Hubo un tiempo en que 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.
- 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. La entrada de la cuenta de usuario “mary” muestra que su nombre completo es Mary Quinn. - /inicio/dave: La ruta a la carpeta de inicio del usuario.
- /compartimiento/bash: El shell predeterminado para este usuario.
Si canalizamos la salida de este comando a través delwc
utilidad y uso de-l
(líneas) opción podemos contar las líneas en el archivo. Eso nos dará la cantidad de cuentas configuradas en esta computadora.
cat /etc/passwd | wc -l
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 usarless
para ver el archivo ?/etc/passwd?.
less /etc/passwd
Usandoless
también le permite buscar dentro de la salida, si desea buscar una cuenta de usuario en particular.
El comando awk
Utilizando elawk
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 la opción -F (separador de campos).
awk -F: '{print $1}' /etc/passwd
Los nombres de las cuentas de usuario se escriben en la ventana del terminal sin ninguna otra información de la cuenta.
El comando de corte
Podemos lograr el mismo tipo de cosas usando elcut
dominio. Necesitamos usar el-d
(delimitador) y pídale que seleccione solo el primer campo, usando el-f
(campos) opción.
cutr -d: -f1
Esto enumera todas las cuentas de usuario, incluido el sistema y otras cuentas no humanas.
El comando compgen
Élcompgen
El comando se puede usar con el-u
(usuario) opción para listar las cuentas de usuario. Canalizaremos la salida a través delcolumn
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
Nuevamente, las primeras cuentas de usuario enumeradas pertenecen a procesos, no a humanos.
UID MÍN y UID MÁX
Las cuentas de usuario reciben una identificación numérica, que vimos anteriormente. Por lo general, las cuentas de usuario normales comienzan en 1000 y las cuentas de usuario del sistema, no humanas, 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 llamadosUID_MIN
yUID_MAX
. Estos se guardan en el archivo ?/etc/login.defs?. Podemos ver fácilmente estos valores usandogrep
.
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 “/etc/login.defs”. el intercalado?^
? 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.
Cómo usar expresiones regulares (regexes) en Linux
El Comando getente
Élgetent
El comando 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.
getent passwd
Esto nos da la misma lectura que podemos obtener usandocat
. Pero dondegetent
brilla es aceptando valores conocidos como “claves”. Una clave dicta qué informacióngetent
informes sobre. Si queremos ver la entrada de un solo usuario, podemos pasar su nombre de cuenta de usuario en la línea de comando.
getent passwd Sarah
Tenga en cuenta que el nombre de la cuenta de usuario distingue entre mayúsculas y minúsculas.
getent passwd sarah
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 regulares, podemos usar los valores deUID_MIN
yUID_MAX
.
getent passwd {1000..60000}
Esto toma algún tiempo para ejecutarse. Eventualmente, volverá al símbolo del sistema.
La razón del largo tiempo de ejecución es quegetent
intenta 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 elcut
comando, pero esta vez le pediremos el campo tres, el campo de ID de usuario. Canalizaremos la salida a través desort
y usa el-g
(clasificación numérica general) opción.
cut -d: -f3 /etc/passwd | sort -g
El valor de ID más alto de una cuenta de usuario de propiedad humana es 1401.
El ID de usuario 65534 se asigna al concepto de sistema de “nadie”.
getent passwd {65534..65534}
Así que sabemos que en lugar de usar elUID_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 la salida a través decut
para extraer solo los nombres de las cuentas de usuario.
contraseña getent {1000..1500} | cortar -d: -f1
Los usuarios aparecen en la lista y regresamos inmediatamente al símbolo del sistema.
En lugar de canalizar la salida a travéscut
canalicemos la salida a través dewc
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
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 requieresudo
acceso, por lo que todos están disponibles para todos los usuarios.
Cómo controlar sudo Acceso en Linux