1. Planteamiento del problema
Entonces, tenemos por delante un trabajo práctico intensivo donde podrás aplicar todos los conocimientos adquiridos en las lecturas anteriores. Vamos a crear usuarios, agruparlos en grupos, asignar permisos únicos de acceso y gestionar procesos en el sistema. Y si te preguntas: “¿Para qué necesito todo esto?”, imagina que eres un administrador de sistemas o un ingeniero DevOps y necesitas configurar un servidor para el trabajo en equipo. O simplemente salvar tu computadora del caos. ¡En el mundo real, estas situaciones suceden bastante a menudo!
Tu objetivo es configurar el sistema para los siguientes usuarios y procesos:
- Crear dos usuarios:
user1yuser2. Trabajarán juntos en el grupodevelopers. - Configurar un archivo (por ejemplo,
project.txt) de forma que solo los miembros del grupodeveloperspuedan editarlo. - Crear varios procesos (por ejemplo, utilizando el comando
sleep) y aprender a terminarlos si es necesario. - Revisar los procesos activos para identificar cuáles consumen más recursos.
¿Suena como un plan? Vamos a implementarlo paso a paso.
2. Paso 1: Creación de usuarios
1. Creamos usuarios
Para empezar, vamos a crear dos usuarios:
sudo adduser user1
sudo adduser user2
Al ejecutar estos comandos, el sistema te pedirá establecer una contraseña y proporcionará una descripción para cada usuario. No llenaremos datos adicionales aquí, simplemente puedes presionar Enter.
A cada usuario se le crea automáticamente un directorio personal en /home. Puedes comprobarlo así:
ls /home
Si estás trabajando localmente, no olvides usar sudo para obtener permisos de administrador. Y si estás en WSL, prepárate para posibles matices con los usuarios. Por ejemplo, en WSL el usuario por defecto ya es administrador del sistema.
3. Paso 2: Crear un grupo y agregar usuarios
1. Creamos un grupo
Para que los usuarios puedan trabajar juntos en proyectos, vamos a añadirlos a un grupo. Primero, creamos el grupo developers:
sudo groupadd developers
2. Agregamos usuarios al grupo
Ahora, añadimos los usuarios user1 y user2 al grupo developers. Utilizamos el comando usermod para esta tarea:
sudo usermod -aG developers user1
sudo usermod -aG developers user2
3. Verificamos la membresía del grupo
Para asegurarnos de que los usuarios se han añadido correctamente al grupo, ejecuta:
groups user1
groups user2
Deberías ver que user1 y user2 son miembros del grupo developers.
4. Paso 3: Trabajo con archivos y permisos
1. Creamos un archivo para el proyecto
Crearemos un archivo project.txt en el directorio personal de uno de los usuarios (por ejemplo, user1):
sudo -u user1 touch /home/user1/project.txt
El comando sudo -u nos permite ejecutar acciones como otro usuario.
2. Cambiamos el propietario y el grupo del archivo
Asignemos como propietario a user1, y como grupo a developers, para que ambos tengan el mismo acceso:
sudo chown user1:developers /home/user1/project.txt
3. Configuramos los permisos
Ahora cambiaremos los permisos del archivo. Usaremos el comando chmod:
sudo chmod 660 /home/user1/project.txt
¿Qué hicimos? Le dimos al propietario user1 y al grupo developers permisos de lectura y escritura rw-, y todos los demás no tienen acceso.
Puedes verificar los permisos usando el comando ls:
ls -l /home/user1/project.txt
Resultado esperado:
-rw-rw---- 1 user1 developers 0 fecha hora /home/user1/project.txt
5. Paso 4: Inicio de procesos
1. Iniciamos procesos
Para experimentar, vamos a crear algunos procesos "de larga duración" con el comando sleep:
sleep 300 &
sleep 400 &
sleep 500 &
Cada comando sleep se ejecuta en segundo plano gracias al símbolo &.
Para comprobar la lista de procesos, usa el comando ps:
ps
Se puede ver más información usando ps aux:
ps aux | grep sleep
6. Paso 5: Finalización de procesos
1. Finalizar un proceso por PID
Identificamos el PID de uno de los procesos (por ejemplo, sleep) y lo finalizamos:
kill PID
Dónde PID es el identificador del proceso que se puede encontrar usando ps.
2. Finalizar un proceso por nombre
Si quieres finalizar todos los procesos sleep, utiliza el comando killall:
killall sleep
3. Usando pkill
Si no recuerdas el nombre exacto del proceso, pkill te ayudará a finalizar el proceso con una coincidencia parcial del nombre:
pkill slee
7. Paso 6: Supervisión de procesos
Para monitorizar la carga del sistema, usa:
top— para trabajar en tiempo real:topAquí puedes observar la carga del procesador, la memoria y los procesos activos. Usa la combinación de teclas
kpara finalizar un proceso directamente desde la interfaz.htop— una interfaz más cómoda (si lo tienes instalado):
Para salir, presionahtopF10.
8. Checklist
Después de completar todos los pasos, debes asegurarte de que:
- Se han creado dos usuarios
user1yuser2. - Se ha creado y configurado un grupo
developers, y ambos usuarios han sido añadidos a él. - Se ha creado un archivo
project.txt, accesible solo para el grupodevelopers. - Se han creado y terminado varios procesos utilizando los comandos
kill,killallypkill. - Has visualizado correctamente la lista de procesos utilizando
ps,topohtop.
¡Si todo está hecho, felicidades! Has pasado por todas las etapas básicas de la gestión de usuarios, grupos, permisos de acceso y procesos en el sistema Linux. ¡Que el poder de la consola esté contigo!
GO TO FULL VERSION