From b0e4a371486200d93249768e17f3364e931fb297 Mon Sep 17 00:00:00 2001 From: sebastian Date: Mon, 24 Aug 2026 13:26:37 -0300 Subject: [PATCH] Commit inicial. --- Diagrama.drawio | 83 ++++++++ Diagrama.drawio.png | Bin 0 -> 70541 bytes inicio_de_so.html | 508 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 591 insertions(+) create mode 100644 Diagrama.drawio create mode 100644 Diagrama.drawio.png create mode 100644 inicio_de_so.html diff --git a/Diagrama.drawio b/Diagrama.drawio new file mode 100644 index 0000000..fd5ba92 --- /dev/null +++ b/Diagrama.drawio @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Diagrama.drawio.png b/Diagrama.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..54e52c77374695cc26a0528881812bf7083b1e3f GIT binary patch literal 70541 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

FU3U#{o!tOo{{|@y^ba&_N7# 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 literal 0 HcmV?d00001 diff --git a/inicio_de_so.html b/inicio_de_so.html new file mode 100644 index 0000000..93ea76c --- /dev/null +++ b/inicio_de_so.html @@ -0,0 +1,508 @@ + + + + + + + Inicio de SO: Modo Kiosco y Administrador + + + + + + + + + +

+ + +
+
+

Inicio de Sistema Operativo

+

Guía de configuración para el arranque de Debian 13 (Kiosco / Admin con Login)

+
+ + +
+

01 / Arquitectura de la Solución

+

Para lograr un sistema seguro y profesional, no utilizaremos auto-login. El sistema arrancará en una + pantalla gráfica de inicio de sesión de LightDM, donde el operador podrá elegir el modo de trabajo + ingresando la credencial correspondiente.

+ +
+ Diagrama de Flujo de Inicio de SO +
+ +
+
💡 Ventaja de este Enfoque
+ Al requerir contraseña para ambos usuarios, eliminas la necesidad de programar complejos scripts de + interrupción durante el arranque (como GRUB o Systemd). El sistema es 100% estándar, seguro y fácil de + mantener. +
+
+ + +
+

02 / Configuración de Usuarios y Pantalla de Login

+

Crearemos los dos usuarios independientes y configuraremos el gestor gráfico LightDM para que muestre una + lista visual de los usuarios disponibles.

+ +

Paso 1: Crear los usuarios Kiosk y Admin

+

Crearemos ambos usuarios y estableceremos sus respectivas contraseñas:

+
# Crear usuario kiosk con contraseña
+sudo adduser kiosk
+
+# Crear usuario admin (si no existe ya en tu instalación)
+sudo adduser admin
+
+# Añadir kiosk a grupos para reproducción de video y audio
+sudo usermod -aG video,audio,input kiosk
+ +

Paso 2: Configurar la Pantalla de Login (LightDM)

+

Debemos asegurarnos de que el inicio automático (auto-login) esté desactivado y que la pantalla de + bienvenida muestre la lista de usuarios para facilitar la selección con el ratón.

+

Edita el archivo /etc/lightdm/lightdm.conf y verifica que las siguientes directivas estén + así bajo la sección [Seat:*]:

+
# Editar con: sudo nano /etc/lightdm/lightdm.conf
+
+[Seat:*]
+# Asegurarse de que no haya ningún autologin configurado (dejar comentado o vacío)
+# autologin-user=
+
+# Habilitar que se muestre la lista de usuarios visual
+greeter-hide-users=false
+greeter-show-manual-login=false
+ +

Reinicia el gestor gráfico para aplicar los cambios:

+
sudo systemctl restart lightdm
+
+ + +
+

03 / Silent Boot y Plymouth (Animación de Carga)

+

Configuraremos Debian para ocultar los mensajes de texto del sistema operativo durante el encendido, + reemplazándolos por una animación gráfica limpia.

+ +

Paso 1: Parámetros silenciosos en GRUB

+

Modifica el archivo /etc/default/grub para ocultar los logs del Kernel:

+
# Abrir el archivo: sudo nano /etc/default/grub
+
+GRUB_CMDLINE_LINUX_DEFAULT="quiet splash loglevel=3 systemd.show_status=false rd.udev.log_level=3 vt.global_cursor_default=0"
+

Aplica los cambios en el cargador de arranque:

+
sudo update-grub
+ +

Paso 2: Configurar Plymouth

+

Instala Plymouth y activa la animación circular por defecto (spinner):

+
sudo apt update
+sudo apt install plymouth plymouth-themes
+sudo plymouth-set-default-theme -R spinner
+
+ + +
+

04 / Configuración del Modo Kiosco (Openbox)

+

Openbox será el entorno gráfico minimalista que cargará exclusivamente cuando inicies sesión como el + usuario kiosk.

+ +

Paso 1: Crear el script de autoinicio

+

Crea el directorio de configuración para el usuario kiosk:

+
sudo -u kiosk mkdir -p /home/kiosk/.config/openbox
+ +

Crea el archivo de arranque /home/kiosk/.config/openbox/autostart:

+
# Editar archivo: sudo nano /home/kiosk/.config/openbox/autostart
+
+# Desactivar suspensión y protector de pantalla
+xset s off
+xset -dpms
+xset s noblank
+
+# Iniciar tu aplicación en un bucle infinito
+while true; do
+    /ruta/completa/a/tu/aplicacion-grafica
+    sleep 1
+done &
+

Otorga los permisos correctos al archivo:

+
sudo chown -R kiosk:kiosk /home/kiosk/.config
+sudo chmod +x /home/kiosk/.config/openbox/autostart
+ +

Paso 2: Bloquear combinaciones de teclado

+

Para evitar que los usuarios utilicen atajos del sistema para cerrar la aplicación, puedes modificar el + archivo /etc/xdg/openbox/rc.xml y eliminar las combinaciones asociadas a + Alt+F4, Alt+Space y cambio de ventanas. +

+
+ + +
+

05 / Control desde la Aplicación

+

Dado que en la sesión de Kiosco no hay menús del sistema operativo, tu aplicación debe proveer la + funcionalidad para Cerrar Sesión y Apagar el hardware directamente mediante botones integrados.

+ +

Paso 1: Configurar permisos especiales sin contraseña (Sudoers)

+

Permitiremos al usuario común kiosk ejecutar los comandos de apagado y cierre de sesión de + forma privilegiada y sin pedir clave. Crea el archivo /etc/sudoers.d/kiosk-power:

+
# Crear y editar el archivo: sudo visudo -f /etc/sudoers.d/kiosk-power
+
+# Permitir al kiosk apagar la PC y terminar su propia sesión gráfica
+kiosk ALL=(ALL) NOPASSWD: /usr/bin/systemctl poweroff, /usr/bin/loginctl terminate-user kiosk
+ +

Paso 2: Programar las acciones en los botones de tu App

+

Desde el código de tu aplicación gráfica, programa los eventos de los botones:

+ +

Botón "Apagar Sistema"

+

Ejecuta el comando para apagar la computadora de forma segura:

+
sudo systemctl poweroff
+ +

Botón "Cerrar Sesión"

+

Ejecuta el comando para cerrar la sesión de Kiosco y regresar a la pantalla de LightDM:

+
sudo loginctl terminate-user kiosk
+
+ + +
+

06 / El "Modo Administrador" (Acceso a XFCE)

+

El modo administrador te permite realizar mantenimiento técnico y desarrollo sobre tu escritorio XFCE + completo sin reiniciar el equipo.

+ +

Pasos para ingresar al Modo Administrador:

+
    +
  1. Desde el modo Kiosco, haz clic en el botón "Cerrar Sesión" de tu aplicación.
  2. +
  3. El sistema cerrará Openbox y volverá inmediatamente a la pantalla de inicio de LightDM.
  4. +
  5. Haz clic en el usuario admin en la lista gráfica.
  6. +
  7. Ingresa su contraseña.
  8. +
  9. Asegúrate de que en el selector de entornos esté marcado XFCE (solo la primera vez) + e inicia sesión.
  10. +
  11. Una vez finalizado el mantenimiento, cierra sesión en XFCE para volver a LightDM y dejar el equipo + listo para el usuario de Kiosco.
  12. +
+ +
+
⚠️ Recuperación ante bloqueos de la App
+ Si tu aplicación se congela y no puedes hacer clic en el botón de Cerrar Sesión, presiona + Ctrl + Alt + F2 en el teclado para iniciar sesión como administrador en una terminal de + comandos limpia, y ejecuta sudo systemctl restart lightdm para forzar el retorno a la + pantalla de login. +
+
+
+ + + + + \ No newline at end of file