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?
- Se crea un nuevo registro en el archivo
/etc/passwd
para el usuario. - Se genera el directorio home (por ejemplo,
/home/nombre_usuario
). - Se configuran parámetros básicos (por ejemplo, el shell predeterminado).
- 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:
- Escribas una contraseña para el usuario.
- 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
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
Añadimos un usuario
tester
:sudo adduser tester
Asegúrate de que el usuario ha sido creado:
cat /etc/passwd | grep tester
Tarea 2: Configura los parámetros del usuario
Cambia el nombre del usuario:
sudo usermod -l test_user tester
Cambia el directorio home del usuario:
sudo usermod -d /home/test_user -m test_user
Asegúrate de que se han aplicado los cambios:
ls -l /home/
Cambia el shell del usuario:
sudo usermod --shell /bin/zsh test_user
Verifica los datos actualizados del usuario:
cat /etc/passwd | grep test_user
Tarea 3: Establece una nueva contraseña para el usuario
Establece una contraseña para el usuario:
sudo passwd test_user
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"
- Primero se ejecuta el comando
ls -l
, que muestra una lista de archivos en el directorio actual - La salida del primer comando
ls
se redirige como entrada para el segundo comandogrep
usando el pipe|
- 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
- Primero se ejecuta el comando
cat file.txt
, que muestra el contenido del archivo file.txt en pantalla - La salida del primer comando
cat
se redirige como entrada para el segundo comandogrep
usando el pipe|
- El segundo comando filtra las líneas que le llegan y muestra solo las líneas que contienen Linux
- Luego, la salida del segundo comando
grep
se redirige como entrada para el tercer comandowc
usando el pipe|
- El tercer comando cuenta la cantidad de líneas que le llegan y muestra el resultado
8. Errores típicos y matices
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.
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.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.El valor de
UID
yGID
. A veces los administradores quieren especificar valores deUID
(identificador de usuario) yGID
(identificador de grupo) al crear un usuario. Para esto se utiliza el comandouseradd
, 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.
GO TO FULL VERSION