Tabla de contenidos
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 sudo
para buscar en el archivo “/etc/passwd”.
Podemos usar el cat
comando 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
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 : 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 wc
utilidad y usamos la -l
opció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
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 less
para ver el archivo “/etc/passwd”.
menos /etc/passwd
El uso less
también le permite buscar dentro de la salida, en caso de que desee buscar una cuenta de usuario en particular.
El comando awk
Usando 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 la opción -F (separador de campos).
awk -F: '{imprimir $1}' /etc/contraseña
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 el cut
comando . Necesitamos usar la -d
opción (delimitador) y pedirle que seleccione solo el primer campo, usando la -f
opción (campos).
cortar -d: -f1
Esto enumera todas las cuentas de usuario, incluido el sistema y otras cuentas no humanas.
El comando compgen
El compgen
comando se puede usar con la -u
opción (usuario) para enumerar las cuentas de usuario. Canalizaremos la 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 | columna
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_MIN
y 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 getent
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.
obtener contraseña
Esto nos da la misma lectura que podemos obtener usando cat
. Pero donde getent
brilla es en la aceptación de valores conocidos como “claves”. Una clave dicta qué información getent
se 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
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_MIN
y UID_MAX
.
obtener contraseña {1000..60000}
Esto toma algún tiempo para ejecutarse. Eventualmente, volverá al símbolo del sistema.
El motivo del largo tiempo de ejecución es que getent
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 el cut
comando, pero esta vez pediremos el campo tres, el campo de ID de usuario. Canalizaremos la salida sort
y usaremos la -g
opción (clasificación numérica general).
cortar -d: -f3 /etc/passwd | ordenar -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».
obtener contraseña {65534..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 la salida cut
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és cut
de , canalicemos la salida wc
y 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
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.