GNU Screen | ||
---|---|---|
Parte de Proyecto GNU | ||
![]() | ||
![]() Captura de una sesión de GNU Screen. | ||
Información general | ||
Tipo de programa | CLI | |
Lanzamiento inicial | 1987 | |
Licencia | GNU GPL | |
Versiones | ||
Última versión estable | 5.0.0 (info) ( 28 de agosto de 2024 (6 meses y 29 días)) | |
Enlaces | ||
GNU Screen es un programa informático de Multiplexación de terminales.[1] Fue desarrollado por el proyecto GNU. Permite a los usuarios acceder a múltiples sesiones separadas dentro de una sola ventana de terminal o en una sesión de terminal remota. Es útil para tratar con múltiples programas en la línea de comandos y para separar programas de la terminal que los lanzó.
Puede imaginar a GNU Screen como una versión en texto de gestores de ventanas gráficos o como una forma de abrir terminales virtuales dentro de cualquier sesión accedida. Screen consiste en una envoltura que permite usar múltiples programas de texto al mismo tiempo y provee características que permiten al usuario usar programas productivamente desde una única interfaz.
Similar a VNC, GNU Screen permite al usuario comenzar aplicaciones desde un computador, reconectar desde un computador distinto y continuar usando la misma aplicación sin tener que reiniciarla. De este modo se consigue que la migración entre localizaciones como el trabajo y el hogar sea simple. Screen provee funcionalidad de terminal-agnóstica de modo que los usuarios pueden conectar y reconectar usando distintos tipos de terminal, permitiendo a las aplicaciones seguir ejecutándose sin tener en cuenta sus cambios.
Se pueden crear múltiples sesiones en la terminal, cada cual corriendo una aplicación. Las ventanas son enumeradas, y el usuario puede intercambiarlas por medio del teclado. Algunos emuladores de GUI proveen de pestañas o alguna otra funcionalidad similar para esto. Cada ventana tiene su propio scroll-back buffer, de manera que la salida es capturada incluso cuando la ventana no está siendo mostrada. Este historial puede ser guardado aun cuando se migra a otro computador.
El Proyecto GNU recibió de manera anónima un "bug" en el que se advierte que se puede utilizar el GNU Screen como vía para escalar privilegios y obtener control de un ordenador con credenciales de root.[2] Hasta la fecha la vulnerabilidad no ha sido parchada por lo que crackers utilizan guiones en lenguaje Python secundados con bibliotecas en lenguaje C para ilustrar el acceso y demostrar la vulnerabilidad.[3] La versión afectada es GNU Screen 4.5.0 y ha sido clasificada como de severidad normal y prioridad normal en su resolución.
Screen fue diseñado originalmente por Oliver Laumann y Carsten Bormann en la Universidad Técnica de Berlín y publicado en 1987.[4][5]
Los criterios de diseño incluían la emulación VT100 (incluyendo ANSI X3.64 (ISO 6429) e ISO 2022) y un rendimiento razonable para un uso diario intensivo cuando los terminales basados en caracteres aún eran comunes. Más tarde se añadió la novedosa función de desconexión/desconexión.
Alrededor de 1990, Laumann traspasó el mantenimiento del código a Jürgen Weigert y Michael Schroeder en la Universidad de Erlangen-Núremberg, quienes más tarde trasladaron el proyecto al Proyecto GNU y añadieron funciones como el desplazamiento hacia atrás, la pantalla dividida, copiar y pegar y la pantalla compartida.[6]
En 2014, el desarrollo se había ralentizado. Amadeusz Sławiński, que quería cambiar esta situación, se ofreció para ayudar. En respuesta, Laumann le concedió el mantenimiento. Sławiński procedió a publicar la primera nueva versión de Screen en media década. Como había algunas versiones no oficiales de "Screen 4.1" circulando por Internet, llamó a esta nueva versión "Screen 4.2.0".
En mayo de 2015, en la Conferencia openSUSE, Jürgen Weigert invitó a Alexander Naumov a ayudar a desarrollar y mantener GNU screen. Dos meses más tarde, con la ayuda de Alex, se publicó GNU screen 4.3.0.