Comandos esenciales para la gestión de usuarios, permisos y procesos en Linux
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 6,72 KB
Bloque 1: Usuarios, permisos y configuraciones iniciales
Ejercicio 1A
Muestra los intérpretes de comandos (shells) válidos que existen en el sistema ejecutando el comando echo $SHELL.
Ejercicio 1B
Muestra la máscara de permisos por defecto (umask). Esta máscara afecta a los permisos que se asignan automáticamente a los archivos y directorios cuando se crean. Ejemplo: umask 0002.
Ejercicio 1C
tty2: Identifica una terminal asociada a un login shell (sesión iniciada autenticándote por consola).
pts/0: Identifica una terminal asociada a un no-login shell (sesión que no requiere autenticarse).
Ejercicio 1D
Se copian desde el directorio /etc/skel. Es una plantilla que define configuraciones de aspecto del escritorio, permisos por defecto y variables de entorno. El fichero .profile se utiliza durante el inicio de sesión para establecer variables de entorno (por ejemplo PATH) y configuraciones para toda la sesión.
Ejercicio 1E
La información se encuentra en /etc/passwd. Cuando una cuenta no puede iniciar sesión en el sistema se suele indicar mediante un shell de cierre o una marca que impide el acceso.
Ejercicio 1F
En el fichero /etc/shadow:
- El carácter
*indica que la cuenta está deshabilitada o es de sistema. - El carácter
!indica ausencia de contraseña o que la cuenta está bloqueada.
Ejercicio 1G
Un usuario debe pertenecer obligatoriamente a un grupo principal y puede pertenecer a más de un grupo (grupos secundarios). Los grupos pueden contener varios usuarios, pero nunca podrán contener a otros grupos.
Ejercicio 1H
Ejemplo de comandos para crear y ajustar permisos de un directorio compartido:
sudo mkdir /ccvv sudo chown jefe_rrhh:rrhh /ccvv sudo chmod 1777 /ccvv
Explicación: el modo 1777 establece permisos amplios con el sticky bit activado para evitar que usuarios borren ficheros ajenos.
Ejercicio 1I
Ejemplo que activa el bit SUID:
sudo chmod u+s /usr/lib/cbox
Implica que el bit SUID está activado; esto significa que cuando cualquier usuario ejecute este archivo, el proceso se ejecutará con los privilegios del propietario del archivo y no con los del usuario que lo lanza.
Ejercicio 1J
Ejemplo de creación de grupo, usuarios y directorios con permisos específicos:
sudo groupadd desarrollo sudo useradd -m -g desarrollo jd_dev sudo useradd -m -g desarrollo jd_dev1 sudo useradd -m -g desarrollo jd_dev2 sudo mkdir -p /desarrollo/dev sudo mkdir -p /desarrollo/mkt sudo chown jd_dev:desarrollo /desarrollo/dev sudo chmod 770 /desarrollo/dev sudo chown jd_dev:desarrollo /desarrollo/mkt sudo chmod 775 /desarrollo/mkt
Bloque 2: Gestión de procesos y tareas
Ejercicio 2A
Herramientas de monitorización: el gestor de tareas lxtask y el monitor de sistema. Estados de procesos:
- Zombie (z): proceso finalizado cuya entrada no se ha eliminado de la tabla de procesos.
- Stopped (t): proceso detenido que no está ejecutándose en CPU.
Ejercicio 2B
Dentro del comando top, para ordenar por uso de memoria se usa la tecla M.
Ejercicio 2C
Para averiguar el PID de un proceso llamado app_1 y cambiar su prioridad:
ps -C app_1 sudo renice -n 19 PID
Ejercicio 2D
El shell permite capturar señales con trap. Las señales SIGKILL y SIGSTOP deben atenderse por el kernel: no se pueden atrapar ni ignorar.
Ejemplo de captura de señal SIGINT:
trap 'echo proceso $$ ignora la señal SIGINT' SIGINT
Ejercicio 2E
La variable especial $? almacena el valor de retorno de un proceso tras su ejecución. Permite saber si el proceso finalizó correctamente (generalmente 0) o si hubo algún error (distinto de 0).
Ejemplo: al ejecutar grep usuario_falso /etc/passwd, como no lo encuentra, al hacer echo $? devolverá 1.
Ejercicio 2F
Comando para listar trabajos en segundo plano: jobs.
- El signo + identifica el trabajo actual que se llevaría a primer plano con
fg. - El signo - identifica el trabajo anterior.
Ejercicio 2G
Estados y características: procesos en sleeping, procesos con baja prioridad, procesos líderes de sesión y procesos multihilo; estos términos se usan para describir distintos comportamientos y atributos de los procesos.
Ejercicio 2H
Crear un archivo de servicio para systemd que inicie pegasus durante el boot. Systemd es el sistema de inicialización moderno en Linux y permite gestionar servicios (arranque, parada, reinicio y dependencias).
Bloque 3: Privilegios, sudo y configuración de archivos sudoers
Ejercicio 3A
Comparativa de comandos de elevación de privilegios:
- su: permite usar el intérprete de comandos de otro usuario sin cerrar sesión (puede cambiar a root o a otro usuario).
- sudo: permite a usuarios autorizados ejecutar programas con los privilegios de seguridad de otro usuario de manera temporal (normalmente root).
- sudo su: ejecuta el comando
sucon privilegios elevados (comúnmente usado para obtener una sesión root).
Ejercicio 3B
Editar el fichero sudoers de forma segura con:
sudo visudo
Ejemplo de alias y reglas en sudoers:
User_Alias ADMINISTRADORES = admin1, admin2 Host_Alias SERVIDORES = host1, host2 Cmnd_Alias GESTION_SERVICIOS = /usr/bin/systemctl ADMINISTRADORES SERVIDORES = (root) GESTION_SERVICIOS
Notas finales
- Conservar buenas prácticas de seguridad al asignar permisos (especialmente SUID y permisos de escritura en directorios compartidos).
- Comprobar siempre los ficheros
/etc/passwdy/etc/shadowal gestionar cuentas, y usarvisudopara evitar errores en sudoers. - Usar systemd para gestionar servicios y garantizar el arranque automático cuando sea necesario.