CodeGym /Cursos /Docker SELF /Gestión de usuarios: comandos adduser, usermod, passwd

Gestión de usuarios: comandos adduser, usermod, passwd

Docker SELF
Nivel 2 , Lección 1
Disponible

Gestión de usuarios: comandos adduser, usermod, passwd

1. ¿Por qué es importante entender la gestión de usuarios?

Hoy nos adentraremos en la gestión de usuarios, ya que es una parte clave de la administración de Linux. Crear usuarios, configurar sus entornos y gestionar sus contraseñas: todo esto será una herramienta importante para tu trabajo. ¡Vamos allá!

A menudo, en Linux hay muchos usuarios trabajando en un servidor. El sistema les da ciertos permisos para proteger los datos y evitar el caos. Necesitarás saber cómo añadir nuevos usuarios (por ejemplo, desarrolladores en tu equipo), configurar sus entornos (como cambiar el shell) y, si es necesario, limitar el acceso.


2. Creación de un usuario con adduser

Linux proporciona el comando adduser, que es una variante amigable del comando useradd. Permite crear nuevos usuarios de forma fácil y rápida:

Sintaxis básica

adduser nombre_usuario

¿Qué pasa al crear un usuario?

  1. Se crea un nuevo registro en el archivo /etc/passwd para el usuario.
  2. Se genera el directorio home (por ejemplo, /home/nombre_usuario).
  3. Se configuran parámetros básicos (por ejemplo, el shell predeterminado).
  4. Se te pedirá que ingreses una contraseña e información adicional (como nombre, número de teléfono, pero estos datos son opcionales).

Ejemplo

Vamos a crear un nuevo usuario llamado dev_user:

sudo adduser dev_user

Después de ingresar este comando, se te pedirá que:

  1. Escribas una contraseña para el usuario.
  2. Proporciones información adicional, que puedes omitir simplemente presionando Enter.

Verificación

Para asegurarte de que el usuario se ha creado, puedes revisar el archivo /etc/passwd:

cat /etc/passwd | grep dev_user

Verás una línea que contiene información sobre el usuario dev_user.


3. Configuración de usuarios con usermod

Cuando un usuario ya está creado, puede surgir la necesidad de cambiar sus parámetros. Por ejemplo, cambiar el nombre, establecer otro shell o añadirlo a un grupo.

Cambio del nombre de usuario

Primero asegúrate de que el usuario no ha iniciado sesión. Luego ejecuta el comando:

sudo usermod -l nuevo_nombre viejo_nombre

Ejemplo:

sudo usermod -l developer dev_user

Ahora el usuario dev_user se llamará developer. Sin embargo, su directorio personal aún seguirá siendo el antiguo.

Cambiar el shell predeterminado

Supongamos que necesitas cambiar el shell del usuario a /bin/zsh. Para hacerlo, ejecuta:

sudo usermod --shell /bin/zsh developer

Verifica que el shell ha cambiado usando el comando:

cat /etc/passwd | grep developer

Cambiar el directorio personal

Si quieres que el nuevo usuario trabaje en otro directorio personal, haz lo siguiente:

sudo usermod -d /nuevo/ruta developer
Importante:

si el directorio aún no existe, utiliza la opción -m para que se cree y el contenido del directorio anterior sea trasladado:

sudo usermod -d /home/new_developer -m developer

4. Gestión de contraseñas con passwd

Establecer y cambiar la contraseña

Para establecer (o cambiar) la contraseña de un usuario, se utiliza el comando:

sudo passwd nombre_usuario

Ejemplo:

sudo passwd developer

El sistema te pedirá que introduzcas dos veces la nueva contraseña para asegurarse de que no cometiste un error.

Cambio obligatorio de contraseña en el próximo inicio de sesión

Esto puede ser útil si estás creando usuarios y quieres que ellos mismos configuren su contraseña la primera vez que inicien sesión:

sudo passwd -e developer

Después de esto, el usuario developer, al iniciar sesión, verá un mensaje indicando que debe cambiar su contraseña.


5. Práctica

Tarea 1: Crea un nuevo usuario

  1. Añadimos un usuario tester:

    sudo adduser tester
    
  2. Asegúrate de que el usuario ha sido creado:

    cat /etc/passwd | grep tester
    

Tarea 2: Configura los parámetros del usuario

  1. Cambia el nombre del usuario:

    sudo usermod -l test_user tester
    
  2. Cambia el directorio home del usuario:

    sudo usermod -d /home/test_user -m test_user
    
  3. Asegúrate de que se han aplicado los cambios:

    ls -l /home/
    
  4. Cambia el shell del usuario:

    sudo usermod --shell /bin/zsh test_user
    
  5. Verifica los datos actualizados del usuario:

    cat /etc/passwd | grep test_user
    

Tarea 3: Establece una nueva contraseña para el usuario

  1. Establece una contraseña para el usuario:

    sudo passwd test_user
    
  2. Fuerza al usuario a cambiar la contraseña en el próximo inicio de sesión:

    sudo passwd -e test_user
    

6. Introducción a los pipes | en Linux

Los pipes | son un mecanismo en Unix/Linux que permite pasar la salida de un comando (stdout) como entrada (stdin) para otro comando. Es una herramienta poderosa que permite combinar comandos, creando "pipelines" para procesar datos.

¿Cómo funciona?

Cuando usas un pipe entre comandos, Linux dirige la salida estándar del primer comando a la entrada estándar del siguiente. Esto permite procesar grandes volúmenes de datos de manera eficiente sin archivos temporales.

Sintaxis:

comando1 | comando2 | comando3
  • comando1 genera los datos.
  • comando2 procesa los datos obtenidos.
  • comando3 realiza un procesamiento adicional o guarda el resultado.

Ejemplo:

Mostrar una lista de archivos y filtrarlos por un patrón:

ls -l | grep ".txt"

Aquí ls -l muestra la lista de archivos, y grep filtra solo los archivos con la extensión .txt.

Contar líneas que contienen una palabra específica:

cat file.txt | grep "Linux" | wc -l

Se muestra secuencialmente el contenido del archivo, se buscan líneas con "Linux" y luego se cuenta su cantidad.

Ventajas de los pipes:

  • Simplificación de operaciones complejas.
  • Minimización del uso de archivos temporales.
  • Posibilidad de combinar potentes utilidades de Linux para automatizar tareas.

7. Introducción a grep en Linux

grep (Global Regular Expression Print) es una utilidad de línea de comandos en Unix/Linux para buscar líneas en archivos que coincidan con un patrón dado. Es ampliamente usada para filtrar y buscar datos, gracias al soporte para expresiones regulares y configuraciones flexibles.

¿Cómo funciona grep?

  • grep toma como entrada un archivo de texto (o entrada estándar), busca líneas que coincidan con el patrón especificado y las muestra.
  • Si no se encuentra el patrón, el comando no muestra nada.

Ejemplos

Mostrar una lista de archivos y filtrar por patrón:

ls -l | grep ".txt"
  1. Primero se ejecuta el comando ls -l, que muestra una lista de archivos en el directorio actual
  2. La salida del primer comando ls se redirige como entrada para el segundo comando grep usando el pipe |
  3. El segundo comando filtra las líneas que le llegan y muestra solo las líneas que contienen ".txt"

Contar líneas que contienen una palabra específica:

cat file.txt | grep "Linux" | wc -l
  1. Primero se ejecuta el comando cat file.txt, que muestra el contenido del archivo file.txt en pantalla
  2. La salida del primer comando cat se redirige como entrada para el segundo comando grep usando el pipe |
  3. El segundo comando filtra las líneas que le llegan y muestra solo las líneas que contienen Linux
  4. Luego, la salida del segundo comando grep se redirige como entrada para el tercer comando wc usando el pipe |
  5. El tercer comando cuenta la cantidad de líneas que le llegan y muestra el resultado

8. Errores típicos y matices

  1. Error "el usuario está actualmente conectado" al cambiar el nombre de usuario. Si el usuario ha iniciado sesión en el sistema, no podrás cambiar su nombre. Asegúrate de que el usuario haya cerrado sesión.

  2. Errores al cambiar el directorio personal. Si olvidas indicar -m, el contenido del antiguo directorio no se moverá al nuevo. El usuario puede perder sus datos.

  3. Olvidaste establecer una contraseña al usuario. Después de crear un usuario con adduser, asegúrate de verificar si tiene una contraseña configurada. Sin contraseña, no podrá acceder al sistema.

  4. El valor de UID y GID. A veces los administradores quieren especificar valores de UID (identificador de usuario) y GID (identificador de grupo) al crear un usuario. Para esto se utiliza el comando useradd, pero este es un tema para un estudio más avanzado de Linux.


9. Uso práctico

Imagina: eres administrador de servidores de una empresa. Los desarrolladores vienen a ti y cada uno requiere acceso al sistema con configuraciones personalizadas. Podrás:

  • Crear usuarios y asignarles el acceso necesario.
  • Configurar el entorno (por ejemplo, shell) según sus preferencias.
  • Gestionar contraseñas y preocuparte por la seguridad.

Estos comandos también te serán útiles en entrevistas para un puesto de DevOps o administrador de sistemas. Pueden preguntarte cómo crear y configurar usuarios, o pedirte que realices esta tarea en práctica.


Chuleta: comandos básicos

Comando Descripción
sudo adduser nombre_usuario Crea un nuevo usuario.
sudo usermod -l nuevo viejo Cambia el nombre de usuario.
sudo usermod --shell ruta nombre Especifica el shell predeterminado.
sudo usermod -d ruta nombre Cambia el directorio home.
sudo passwd nombre Establece una nueva contraseña.
sudo passwd -e nombre Obliga a cambiar la contraseña en el próximo inicio de sesión.

¡Practica! Linux siempre es trabajo manual. Cuanto más experimentes con los comandos, más fácil te resultará trabajar con sistemas reales.

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION