Debian 11 ya tiene fecha de lanzamiento: el 14 de agosto

Debian 11 14 de agosto

Bueno. Ya tenemos una fecha que marcar en el calendario. Aunque Ubuntu es más popular, el sistema desarrollado por Canonical es descendiente del que desarrolla Project Debian. A diferencia del primero que sabemos que lanza una nueva versión cada seis meses y conocemos el día con medio año de antelación, los segundos confirman la fecha cuando lo tienen todo preparado. Después de la «Hard Freeze» y la «Full Freeze», el proyecto ha anunciado que Debian 11 llegará a mediados de agosto.

Bullseye es el nombre en clave que han elegido para este lanzamiento, y llegará 25 meses después del actual Buster. Project Debian elige nombres de personajes de Toy Story, y Bullseye es el caballo de trapo que aparece en la famosa saga. En el fondo de pantalla, que podéis ver sin difuminar en el enlace de encima de estas líneas, podemos ver lo que parece la cabeza de un caballo, aunque hay que tener algo de imaginación para verlo.

Tres semanas para el lanzamiento de Debian 11 Bullseye

Siguiendo un poco con las comparaciones con Ubuntu, Canonical realiza sus lanzamientos en jueves, y Project Debian nos ha entregado las últimas versiones en fin de semana. Debian 11 Bullseye será lanzado el 14 de agosto, lo que es dentro de 22 días.

En cuanto a las novedades, bien sabido es que Debian no apuesta por el software más moderno, sino por el que está más probado y con los bugs más pulidos. Como usuario de KDE, y si no me equivoco, me atrevería a decir que usará Plasma 5.18, la última versión LTS del entorno gráfico de KDE Communtity. En cuanto a la versión «canela», su principal mantenedor ya adelantó que no seguiría trabajando para añadir Cinnamon 5, pero parece que Bullseye sí estará disponible con ese sabor. Para confirmar todas las funciones tendremos que esperar hasta el sábado 14 de agosto.

from Linux Adictos https://ift.tt/3iF81ZH
via IFTTT

De pseudocódigo y diagramas. La programación en Linux 3

De pseudocódigo y diagramas

En esta serie de artículos estamos tratando de darle un marco teórico que permita a los aspirantes a programadores elegir las mejores herramientas de la enorme selección que ofrece Linux para la creación de software.

En el artículo anterior habíamos dividido el proceso de programación en cinco etapas y habíamos comenzado con la descripción de la primera.

De pseudocódigos y diagramas

Para quienes no se sienten cómodos con las representaciones gráficas utilizando diagramas de flujo, el pseudocódigo representa una buena alternativa.

El pseudocódigo está a medio camino de una larga descripción narrativa y el código escrito en un lenguaje de programación.

Se trata de una descripción detallada de los pasos que un programa debe hacer para cumplir la tarea encomendada. Pero, al estar redactado utilizando palabras de nuestro idioma, permite a quienes participan de un proyecto sin ser programadores determinar si estos entendieron que es lo que se espera de ellos.

La descripción en pseudocódigo admite los siguientes tipos de instrucciones; de proceso, control, descripción y la combinación de todas o algunas de ellas. Para esto utiliza tres tipos de estructuras:

  • Estructura secuencial: Las instrucciones se ejecutan de manera ordenada empezando por la del renglón inicial y así sucesivamente hasta llegar al último.
  • Estructura selectiva: El que una instrucción se ejecute depende del cumplimiento o no de una condición. Puede ser doble (hay dos alternativas) múltiples (Varias condiciones mutuamente excluyentes) Múltiples Casos (Se compara si un valor generado por el programa coincide con uno dado)
  • Estructura iterativa: Una o más instrucciones se ejecutan de manera ininterrumpida hasta que se le indique o se cumpla una condición. Las modalidades son Bucle mientras (las instrucciones se ejecutan mientras se mantenga una condición). Bucle repetir (Comprueba si se cumplieron todas las instrucciones del bucle y en caso de haberlo hecho se continúa con la ejecución del resto del programa, Bucle para (El código del bucle se ejecuta hasta que se alcanza el número de repeticiones predeterminado), bucle para cada (se ejecuta con una lista de elementos, Anidamiento ( Incluir funciones y procedimientos dentro de otras funciones y procedimientos.

Ejemplo de pseudocódigo

Supongamos que tenemos que escribir un programa que compare dos valores introducidos por el usuario. No se acepta que el usuario introduzca dos valores iguales. Tendríamos algo como esto
INICIO
Poner las variables A=0 y B=0
Pedir la introducción de dos valores distintos
Leer los valores
Asignar los valores de A y B
Comparar los valores de A y B
Si A y B son iguales se vuelve a 3
Si A > B entonces escribir A es mayor que B
Si A < B entonces escribir Escribir B es mayor que A
Escribir ¿Desea introducir otro valor? (S/N)
Si se pulsa S ir a 3
Si se pulsa N finalizar programa
FIN

Herramientas de código abierto para la determinación de problemas

Programas para la creación de diagramas de flujo.

Estos programas traen todos los símbolos necesarios para representar las tareas de la futura aplicación.

LibreOffice Draw

La aplicación para dibujo vectorial de la suite ofimática de The Document Foundation incluye todos los símbolos necesarios. Aunque, al no haber sido creada para eso no tendremos características de automatización. Habrá que ajustar posición y tamaño manualmente

Inkscape

Es la más completa herramienta de código abierto para el trabajo con gráficos vectoriales. Utiliza el formato SVG con todas sus ventajas y es la opción ideal para lograr impresiones de alta calidad de los diagramas de flujo. También trae predefinidos todos los símbolos necesarios

Editor de diagramas Dia

Dia está inspirado en Visio, la aplicación de Windows para la creación de gráficos técnicos. Disponible en los repositorios, trabaja con varios formatos gráficos, permite la impresión en múltiples páginas y, además de las formas predefinidas permite la utilización de otras creadas por el usuario.

Programa para escribir pseudocódigo

PseInt

Este desarrollo español es ideal para comenzar en la escritura de pseudocódigo. Dado que el pseudocódigo que utiliza está basado en nuestro idioma, la curva de aprendizaje se reduce notablemente. Además incluye un creador de diagramas de flujo, ayudas emergentes, plantillas de pseudocódigo, indentado inteligente y la ejecución del programa.

Debido a que el pseudocódigo no es algo formalizado, no existen demasiadas herramientas disponibles. Si hay complementos para los distintos editores de código y entornos integrados de desarrollo.

from Linux Adictos https://ift.tt/3y0UIJt
via IFTTT

Manjaro 2021-07-23 ya disponible con Nvidia 470.57.02, Pipewire 0.3.32 y el SDDM oficial de KDE

Manjaro 2021-07-23

Hace diez días publicamos un artículo en el que había varios fallos por la numeración. Mea culpa todo. En un principio, pensé que esa mega actualización iba a coincidir con lo que más tarde serían las imágenes de Manjaro 21.1, y no, ahora mismo están lanzando Release Candidates de esa versión. Es más, otro error me hizo poner, encima, «21.0», pero corregí lo que pude. Y para evitar confusiones, ahora diferenciaremos entre lo que lanzan para las instalaciones existentes y las nuevas imágenes. En ese sentido, hoy han lanzado Manjaro 2021-07-23.

Teniendo en cuenta que han pasado sólo diez días desde la versión anterior, poco realmente llamativo han podido incluir. Sí nos hemos dado cuenta los usuarios de KDE que nos ha cambiado el SDDM por el oficial de KDE, y en lo personal y sin más información al respecto sí que sé que ha cambiado algún icono, como el de Yakuake en la bandeja del sistema.

Novedades de Manjaro 2021-07-23

  • La mayoría los nuestros Kernels se han actualizado. Aquí recuerdan que la serie 5.12 está ahora marcada como EOL («End Of Life» o final del ciclo de vida).
  • Wine está ahora en 6.13.
  • VirtualBox se ha actualizado a 6.1.24.
  • Pipewire ha subido a 0.3.32.
  • Nvidia 470.57.02.
  • System está en 248.5.
  • Algunos paquetes se han actualizado como Breath2-Themes (por eso lo de los iconos), Cinnamon y Kodi.
  • Firefox está ahora en 90.0.
  • Mesa 21.1.5 ya está disponible.
  • Más actualizaciones el tema Breath2.
  • AMDVLK está en 2021.Q3.1.
  • Otras actualizaciones regulares.

Como hemos explicado, a partir de ahora hablaremos de dos tipos de lanzamientos, y este Manjaro 2021-07-23 ya está disponible para actualizar desde el mismo sistema operativo. Probablemente, en las próximas horas lancen las ISO de Manjaro 21.0.8, o quizá añadan todas las novedades de hace 10 días y estas al Manjaro 21.1 que será lanzado en el mes de agosto. Si usáis KDE y veis que inicia distinto, tranquilos; es así.

from Linux Adictos https://ift.tt/3x0FKlp
via IFTTT

Etapas para crear programas. La programación en Linux 2

Etapas para crear programas

Varias veces, en este y otros blogs de Linux, se publican listas de herramientas de programación con una breve descripción de sus características. En esta serie de artículos nos proponemos ir un paso más allá y darle a los usuarios los conceptos básicos que necesitan para tomar sus propias decisiones.

En el artículo anterior habíamos establecido las diferencias entre programar (el conjunto de tareas que van desde determinar las necesidades del usuario hasta el desarrollo de una aplicación que la satisfaga) y la codificación (Instruir, usando un lenguaje de programación comprensible para el dispositivo sobre las tareas que deben realizar)

Dijimos también, que la diferencia entre un editor de códigos y un entorno integrado de desarrollo, es que el segundo incluye herramientas para todas las etapas del proceso de programación.

Etapas para crear programas

La tarea de programar consta de los siguientes pasos:

  1. Definición del problema
  2. Planeación de la solución
  3. Codificación del programa
  4. Probar el programa
  5. Documentar el programa

Definición del problema

La palabra problema debe tomarse en sentido amplio. Tal vez sería más adecuado cambiarla por proyecto. Básicamente hay un usuario que tiene determinadas necesidades que pueden satisfacerse a través del procesamiento por parte de un computador de los datos disponibles.

Podemos dividir esta etapa en dos actividades:

  • Determinar los requisitos
  • Establecer las especificaciones

Determinar los requisitos

Aquí es donde decidimos que es lo que el programa tendrá que hacer

Por ejemplo, durante la cuarentena los restaurantes vieron cambiar su actividad principal de la venta de comida en su salón a la entrega a domicilio. Es probable entonces que hayan tenido que actualizar sus sistemas de facturación. Una buena idea sería integrar el sistema de facturación a las aplicaciones de pedidos. Así como se suma a la facturación del día los pedidos efectivamente entregados, el sistema debe restar aquellos que por algún motivo no pudieron serlo.

Establecer las especificaciones

Una vez determinados los requisitos queda por decidir lo que debe hacer la solución para satisfacerlos.

En nuestro ejemplo presumimos que sería una buena idea que la solución registrara automáticamente los pedidos hechos desde las aplicaciones. Sin embargo, eso implicaría tener acceso a sus servidores y es probable que no lo obtengamos. Por lo tanto, lo más adecuado sería establecer un código en el sistema de facturación para cada una y que, salvo indicación expresa de los repartidores, se las considere entregadas.

Los programadores cuentan con dos herramientas muy útiles para ayudar en la etapa de definición del problema. Los diagramas de flujo y la escritura de pseudocódigo. Y, como no podía ser de otra manera, existen aplicaciones disponibles para Linux que nos permiten usarlas.

Los diagramas de flujo son representaciones pictóricas de lo que se supone que el programa debe hacer y cómo va hacerlo. Las figuras geométricas indican acciones y las flechas su secuencia.

El American National Standards Institute (ANSI) ha desarrollado un conjunto estándar de símbolos de diagramas de flujo. Algunos de ellos son:

Rectángulo: Este símbolo se utiliza cuando mediante una operación manual o en el dispositivo se realiza un cambio en un elemento o entrada. Dentro del rectángulo se incluye una breve descripción de la actividad realizada.

Diamante: Este símbolo se utiliza para indicar la necesidad de tomar una decisión. De acuerdo a lo que se tome se seguirá un determinado camino, por lo que desde el diamante se produce una bifurcación en el proceso. A cada una de las alternativas le corresponde una rama con su nombre. En el diamante se incluye una breve descripción de la naturaleza de la decisión.

Flecha: Conecta las actividades y decisiones indicando el orden en que se producen.

Círculo grande: Indica una detención del proceso para permitir realizar una revisión u otorgar aprobación. Dentro del círculo se incluye una breve descripción.

Triángulo: Indica el archivo de una salida.

En el próximo artículo veremos que es el pseudocódigo que programa uitilizar para escribirlo y para hacer diagramas de flujo.

 

from Linux Adictos https://ift.tt/2UA0OlI
via IFTTT

Mejores herramientas de código abierto para escritores

escritores

Si eres escritor, ya sea de documentos técnicos, o redactor de historias, o escritores de libros, etc., seguro que te encantará conocer algunas de las mejores herramientas de código abierto que puedes emplear para facilitarte este trabajo en tu distribución GNU/Linux favorita. Y todo sin gastar importantes cantidades en licencias de software propietario.

Verás que no es necesario depender de programas como Microsoft Office (para Word), o de QuarkXpress, Adobe InDesign, Illustrator, CorelDraw, o los de Scrivener. Las alternativas gratuitas y libres no tienen demasiado que envidiar a éstas de pago…

Los mejores programas para escritores

Bibisco

Bibisco es una aplicación diseñada para ayudar a los escritores de historias, principalmente a los novelistas. Este programa te preguntará una srie de preguntas que te ayudarán a tener una idea más sólida de los episodios. Además, podrás cargar tus textos en la nube cuando los completes con su editor y así no perderlos.

Manuskript

Manuskript es otra herramienta para crear novelas. Pero en este caso enfocada a delinear las etapas de cada capítulo, los personajes involucrados, reorganización fácil, etc. Todo lo necesario para tener un método para ayudarte en la construcción de tu historia. También tiene otros elementos, como su analizador de frecuencia para saber qué palabras o frases se repiten más, modo de escritura sin distracciones, etc.

espanso

Si lo que buscas es escribir palabras más rápido, puedes usar esta herramienta de expansión de texto que funcina sin conexión. Con él podrás crear tus propias palabras clave personalizadas para expandir los tetos en los que se usarían con freceucnia. Así acelerarás tu escritura.

GitBook

GitBook es un servicio para la redacción técnica. Emplea un sistema de control de versiones basado en git para realizar un seguimiento de la documentación escrita. También permite que varios usuarios puedan colaborar en el documento. Puede ser fantástico para crear manuales técnicos, fichas técnicas, etc.

KIT Scenarist

Si te gusta escribir guiones, entonces KIT Scenarist es una gran solución, muy completa y profesional. Ofrece muchas funciones, como crear y administrar tareas, obtener estadísticas del proyecto, organizar todos los materiales, GUI para que sea intuitiva, etc.

Ghostwriter

Es una app que permite usar lenguaje Markdown para crear documentos. Este editor sin distracciones puede exportar a formatos como HTML, DOC, ODT, PDF, ePub, etc. También tiene diferentes temas para ayudarte a estar cómodo mientras escribes o editas.

Scribus

Scribus es un popular programa de autoedición con la que podrás diseñar tu libro y trabajar en publicaciones como revistas. Tiene soporte para herramientas de dibujo vectorial, filtros, efectos, capacidad de importar y exportar, representación en lenguajes de marcado como LaTeX o Lilypond, etc.

Markdown

Markdown es una potente herramienta con la que editar y escribir texto sin formato y luego convertirlo a cualquier otro formato de documento. Lo puedes usar en conjunción con programas como Ghostwriter, aunque existen más editores compatibles…

AsciiDoc

AsciiDoc es otra herramienta para formato de documentos. Tiene soporte para notas al pie de página, tablas, referencias cruzadas, vídeos de YouTube incrustados y mucho más. Con ella podrás crear libros, documentos, notas, artículos, presentaciones, webs, etc. Admite conversión a HTML, PDF, ePUB, y páginas de manual.

AsciiDoc

LanguageTool

Para una escritura impecable y ayudarte a descubrir errores de escritura, lo mejor es contar con LanguageTool. Es un corrector ortográfico que puede funcionar como extensiones en el navegador, y también en LibreOffice, etc.

LyX

LaTeX es un popular sistema para preparar documentos legibles por humanos, como artículos científicos, aunque también se puede usar para otro tipo de libros y documentos. Usa una serie de señales de marcado para establecer la escritura, permitiendo controlar el formato, agregar citas, referencias cruzadas, etc. Con LyX podrás trabajar con ello…

LibreOffice

Por último, no se podía olvidar la suite ofimática por excelencia, como es LibreOffice. No solo dispones de Writer como poderoso procesador de texto alternativo a Microsoft Word de Office, también tienes otras herramientas interesantes como Draw.

LibreOffice

from Linux Adictos https://ift.tt/3eICJjp
via IFTTT

Una vulnerabilidad en el Kernel permite escalar privilegios mediante la manipulación de directorios

systemd vulnerabilidad

Hace poco investigadores de seguridad de Qualys (una empresa de seguridad en la nube, cumplimiento y servicios relacionados) dieron a conocer los detalles de una vulnerabilidad que detectaron y que afectan al kernel de Linux.

CVE-2021-33909 afecta al kernel y permite que un usuario local logre la ejecución de código y escalar privilegios mediante la manipulación de directorios muy anidados.

La vulnerabilidad se debe a la falta de validación del resultado de convertir size_t al tipo int antes de realizar operaciones en el código seq_file, que crea archivos a partir de una secuencia de registros. La falta de validación puede resultar en escrituras en un área fuera de los límites del búfer al crear, montar y eliminar una estructura de directorio con un nivel muy alto de anidamiento (tamaño de ruta de más de 1 GB).

Cualquier usuario sin privilegios puede obtener privilegios de root en un host vulnerable aprovechando esta vulnerabilidad en una configuración predeterminada.

Como resultado, un atacante puede obtener una cadena de 10 bytes «//deleted» con un desplazamiento de «- 2 GB – 10 bytes», que apunta al área inmediatamente anterior al búfer asignado.

La amenaza de la vulnerabilidad se ve agravada por el hecho de que los investigadores pudieron preparar exploits funcionales en Ubuntu 20.04, Debian 11 y Fedora 34 en la configuración predeterminada. Se observa que no se han probado otras distribuciones, pero teóricamente también son susceptibles al problema y pueden ser atacadas.

La explotación exitosa de esta vulnerabilidad permite que cualquier usuario sin privilegios obtenga privilegios de root en el host vulnerable. Los investigadores de seguridad de Qualys han podido verificar de forma independiente la vulnerabilidad, desarrollar un exploit y obtener privilegios de root completos en instalaciones predeterminadas de Ubuntu 20.04, Ubuntu 20.10, Ubuntu 21.04, Debian 11 y Fedora 34 Workstation. Es probable que otras distribuciones de Linux sean vulnerables y probablemente explotables.

El trabajo del exploit se reduce a crear una jerarquía de aproximadamente un millón de directorios anidados a través de la llamada mkdir() para lograr un tamaño de ruta de archivo superior a 1 GB.

Este directorio se monta mediante bind-mount en un espacio de nombres de usuario separado, después de lo cual se ejecuta la función rmdir() para eliminarlo. Paralelamente, se crea un hilo que carga un pequeño programa eBPF, que se bloquea en la etapa después de verificar el pseudocódigo eBPF, pero antes de su compilación JIT.

En el espacio de nombres de ID de usuario sin privilegios, el archivo /proc/self/mountinfo se abre y lee la ruta de directorio larga montada con bind-mount, lo que da como resultado que la línea «//deleted» se escriba en la región antes del inicio del búfer. La posición para escribir la línea se elige de tal manera que sobrescriba la instrucción en el programa eBPF ya probado pero aún no compilado.

Además, en el nivel del programa eBPF, la escritura incontrolada fuera del búfer se transforma en una capacidad de lectura/escritura controlada en otras estructuras del núcleo mediante la manipulación de las estructuras btf y map_push_elem.

El exploit luego ubica el búfer modprobe_path[] en la memoria del kernel y sobrescribe la ruta «/sbin/modprobe» en él, lo que permite que cualquier archivo ejecutable sea lanzado como root si se realiza una llamada request_module (), que se ejecuta, por ejemplo, al crear un socket netlink …

Los investigadores han proporcionado varias soluciones que son efectivas solo para un exploit específico, pero no solucionan el problema en sí.

Como tal lo que se recomienda es establecer el parámetro «/proc/sys/kernel/unprivileged_userns_clone» en 0 para deshabilitar el montaje de directorios en un espacio de nombres de ID de usuario separado y «/proc  sys/kernel/unprivileged_bpf_disabled» en 1 para deshabilitar la carga de programas eBPF en el núcleo.

Además de que tambien se recomienda a todos los usuarios de una distribución de Linux, realizar la actualización de su sistema para tener el parche correspondiente. El problema ha sido evidente desde julio de 2014 y afecta a las versiones del kernel desde 3.16. El parche de vulnerabilidad se coordinó con la comunidad y se aceptó en el kernel el 19 de julio.

Finalmente, si estás interesado en conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

from Linux Adictos https://ift.tt/3hXVu4a
via IFTTT

Una vulnerabilidad de hace mas de 15 años en Netfilter permitía escalar privilegios

Hace pocos dias se dio a conocer la noticia de que se ha identificado una vulnerabilidad en Netfilter (un subsistema del kernel de Linux utilizado para filtrar y modificar paquetes de red), que permite a un usuario local obtener privilegios de root en un sistema, incluso mientras se encuentra en un contenedor aislado.

La vulnerabilidad CVE-2021-22555 es un problema que ha estado presente desde el kernel 2.6.19, lanzado hace 15 años y es causado por un error en los controladores IPT_SO_SET_REPLACE e IP6T_SO_SET_REPLACE, lo que provoca un desbordamiento del búfer al enviar parámetros especialmente decorados a través de la llamada setsockopt en modo compat.

Tal vez muchos en este punto se preguntaran como es posible que un fallo en el Kernel de Linux pudo pasar desapercibido durante tanto tiempo y la respuesta a ello es que aun que el fallo que estuvo presente desde Linux 2.6.19, la vulnerabilidad si encontró mediante auditoría de código, aun que el código C no era reproducible, por lo que no pudo ser explotado debido a que los recursos necesarios para poder escalar los privilegios no se encontraban en ese entonces.

Por ejemplo el soporte para espacios de nombres de usuarios sin privilegios, está en el kernel 3.8. Además de que algunas distribuciones tienen un parche que agrega sysctl para deshabilitar los espacios de nombres de usuarios sin privilegios.

En circunstancias normales, solo el usuario root puede llamar a compat_setsockopt(), pero los permisos necesarios para realizar un ataque también pueden ser obtenidos por un usuario sin privilegios en sistemas con espacios de nombres de usuario habilitados.

CVE-2021-22555 es una vulnerabilidad de escritura fuera de límites de pila de 15 años en Linux Netfilter que es lo suficientemente potente como para evitar todas las mitigaciones de seguridad modernas y lograr la ejecución del código del kernel.

Como tal, se describe que un usuario local puede crear un contenedor con un usuario root independiente y aprovechar la vulnerabilidad desde allí. Por ejemplo, los «espacios de nombres de usuario» se incluyen de forma predeterminada en Ubuntu y Fedora, pero no en Debian y RHEL.

Esta vulnerabilidad se puede aprovechar sobrescribiendo parcialmente el m_list->nextpuntero de la msg_msgestructura y logrando un uso después de libre. Esto es lo suficientemente poderoso como para obtener la ejecución del código del kernel sin pasar por KASLR, SMAP y SMEP.

Además, el problema surge en la función xt_compat_target_from_user() debido a un cálculo incorrecto del tamaño de la memoria al guardar las estructuras del kernel después de la conversión de la representación de 32 bits a la de 64 bits.

Como tal, se menciona que el error permite escribir cuatro bytes «cero» en cualquier posición fuera del búfer asignado, limitado por el desplazamiento 0x4C. Debido a esto, se menciona que esta característica resultó ser suficiente para crear un exploit que permite obtener derechos de root: al borrar el puntero m_list-> next en la estructura msg_msg, se crearon las condiciones para acceder a los datos después de liberar memoria (use-after-free), que luego fue se utiliza para obtener información sobre direcciones y cambios en otras estructuras mediante la manipulación de la llamada al sistema msgsnd().

En cuanto al informe del error, al igual que cualquier vulnerabilidad detectada, esto lleva un proceso y el informe que se realizó a los desarrolladores del kernel en abril, con lo cual posterior a ello se corrigió en unos días y se lanzó el parche que está incluido en todas las distribuciones compatibles, para después poder divulgar la información sobre el fallo.

Los proyectos Debian, Arch Linux y Fedora ya han generado actualizaciones de paquetes. A partir de Ubuntu, se están preparando las actualizaciones de RHEL y SUSE. Debido a que el error es grave, explotable en la práctica y permite escapar del contenedor, Google estimó su descubrimiento en $ 10,000 y doblo la recompensa al investigador que identificó la vulnerabilidad  y por identificar un método para evitar el aislamiento de los contenedores de Kubernetes en el clúster kCTF.

Para las pruebas, se ha preparado un prototipo funcional de un exploit que elude los mecanismos de protección KASLR, SMAP y SMEP.

Finalmente si estás interesado en conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

from Linux Adictos https://ift.tt/2W0hz9N
via IFTTT

La programación en Linux 1. Una breve introducción

La programación en Linux

Muchas veces quienes escribimos artículos o contestamos en foros sobre Linux, caemos en la mala costumbre de dar por sabidas cosas que los usuarios novatos no tienen por qué saber. Es por eso que cada tanto resulta conveniente dar un repaso a los conceptos básicos.

Cada vez hay más personas interesadas en programar y son muy frecuentes las preguntas sobre qué opciones de código abierto utilizar. Y acá es donde volvemos a hacer gala de otra mala costumbre, la de actuar como fanáticos religiosos que pretenden imponer sus alternativas preferidas sin tener en cuenta las necesidades del usuario que pregunta.

La programación en Linux

Es por eso que para complementar la enumeración de las herramientas de código abierto disponibles para Linux, que hacemos de manera periódica, vamos a repasar algunos conceptos

Qué es programar

Nuestra manera de interactuar con computadoras y dispositivos móviles sigue un paradigma creado en los laboratorios de investigación de la empresa Xerox en Palo Alto. Apple primero y Microsoft después copiaron el modelo de iconos y ventanas para sus sistemas operativos. Con el correr de los años iOS y Android, adoptarán el mismo esquema adaptándolos a teléfonos y tabletas

Antes de la interfaz gráfica, la manera de comunicarse con el equipo era escribir los comandos en una terminal. En un futuro puede que solo baste con pensar que es lo que queremos que haga.

Pero, cualquiera sea la forma con la que nos comunicamos, el ordenador necesita que se le diga cómo responder a los requerimientos de los usuarios. De eso es lo que se ocupa la programación.

Programar es entonces proporcionar al dispositivo instrucciones expresadas en un lenguaje de programación que éste puede entender.

Diferencias entre codificar y programar

Aunque estos términos suene interpretarse como sinónimos no lo son. Codificar, perdón por la obviedad, es escribir código para crear un programa o sitio web.

La programación implica el proceso de desarrollar un programa desde el momento en que se identifica el problema del usuario hasta que se crea una aplicación para su uso como solución. También, se incluye la etapa de mantenimiento y actualización.

El clásico ejemplo de imprimir “Hola Mundo» en la pantalla, es entonces un ejercicio de codificación ya que no tiene el propósito de solucionar un problema ni cumple con el resto de las etapas del proceso.

La tarea de programar es una actividad compleja que requiere de múltiples instrumentos como herramientas para análisis de código, frameworks, compiladores, creadores de bases de datos, diseñadores de interfaces gráficas y depuradores.

Lo primero que necesitamos saber para ayudar al usuario es  si quiere aprender programación con un nivel profesional o solo escribir programas. Dado que la codificación solo requiere escribir sentencias en cualquier lenguaje de programación y, no se busca la eficiencia ni se pretende que el código pueda ser actualizado ni comprendido por otras personas, basta cualquier programa de escritura.

De la respuesta a esa pregunta sabremos si se siente más cómodo con un editor de código o un entorno integrado de desarrollo. Pero, no nos puede contestar eso sí no entiende cuál es la diferencia. Es lo que vamos a tratar de responder en este artículo.

Si se trata de escribir código cualquier editor o procesador de textos podría hacerlo. Solo hay que asegurarse de guardarlo con un formato que el sistema operativo puede identificar como código de un programa. La diferencia es que no dispondermos de ningún tipo de herramienta que ayude a verificar que no exista ningún tipo de errores.

Algunos de los editores de texto incluidos en las distribuciones Linux incluyen varios complementos para convertirlos en editores de código, pero para no confundir no vamos a insistir en ese tema.

Diferencias entre entornos integrados de desarrollo y editores de código

Para hacerla corta la diferencia es la que hay entre una navaja suiza y un destornillador. Los entornos integrados de desarrollo traen casi todo lo que se puede necesitar en la tarea de programación incluyendo la redacción de código, el autocompletado, el mercado de errores, la depuración, las pruebas y la compilación.
Hay entornos integrados de desarrollo que están optimizados para un lenguaje de programación específico y otros que son compatibles con varios. También los hay para sistemas operativos específicos como Android o Arduino.

from Linux Adictos https://ift.tt/3BtSHYh
via IFTTT

LibreOffice 7.1.5 corrige alrededor de 55 fallos, pero sigue sin ser la versión recomendada para equipos de producción

LibreOffice 7.1.5

Mes y medio después de la versión anterior, The Document Foundation acaba de lanzar LibreOffice 7.1.5 Community, una etiqueta que empezaron a añadir empezando por la serie 7.1 pero creo que yo terminaré quitando para evitar confusiones. Y es que desde esta serie, TDF ofrece una opción Enterprise con soporte mejorado que corre directamente por su cuenta, mientras que la normal, la que recibe la etiqueta de Community, está soportada por la comunidad.

Etiquetas aparte, The Document Foundation ha solucionado en este lanzamiento 55 fallos, el 20% de ellos para mejorar la compatibilidad con los formatos de Microsoft Office DOCX, XLSX, PPTX y los antiguos DOC. Y es que, aunque no nos guste, la suite de ofimática más popular sigue siendo la de Microsoft, y todos los avances que se puedan hacer para mejorar la compatibilidad nunca serán suficientes.

LibreOffice 7.1.5 vuelve a mejorar la compatibilidad con Microsoft Office

Aunque estamos ante una quinta actualización de mantenimiento, lo que significa que ya se han corregido muchos fallos, The Document Foundation sigue sin ofrecer LibreOffice 7.1.5 para equipos de producción. Probablemente lo haga dentro de seis semanas, cuando lance LO 7.1.6, pero en estos momentos menciona que esta sigue siendo la opción para los que queremos todas las novedades; los que quieren algo más seguro y con menos fallos, tienen disponible LibreOffice 7.0.6.

Una vez más, el proyecto ha aprovechado la ocasión para recordar que ofrecen esa versión Enterprise que no sólo ofrece mejor soporte, sino que también se supone que se le pueden pedir funciones a la carta. Sin haberlo probado ni conocer a nadie que use esta opción, poco o nada puedo comentar al respecto.

LibreOffice 7.1.5 está disponible desde esta misma tarde, por lo que ya podemos descargarlo desde la página web oficial. Desde allí, los usuarios de Linux podemos descargar paquetes DEB, RPM y binarios. En las próximas horas estará también disponible en Snapcraft y Flathub.

from Linux Adictos https://ift.tt/3kL6OCS
via IFTTT

El mejor software de productividad para GNU/Linux

 

productividad

Las distracciones pueden hacerte perder mucho tiempo en el trabajo, en tus tareas de casa o mientras estudias. Eso hace que restes tiempo a otras actividades, y que al final te puedas llegar a frustrar. Sin embargo, actualmente existen multitud de métodos para mejorar la productividad, así como apps que te ayudarán a ello.

Si mejoras la eficiencia en tus tareas, verás que no solo podrás hacer mucho más con menor esfuerzo, sino que también tendrás más tiempo para el ocio y para descansar. Para ayudarte a cumplir ese objetivo, en Linux tienes apps como…

Mejores herramientas para la productividad en Linux

Algunas de las mejores herramientas de productividad que puedes instalar en tu distro GNU/Linux favorita son:

actiTIME

Es un software que te permitirá gestionar mejor tu tiempo. Administrar las asignaciones que dedicas a las tareas, registrar manualmente las horas de trabajo para poder tener una idea general de lo que se hace y si existen algunos cuellos de botella en el procedimiento, así como evaluar el desempeño de distintos proyectos.

actiTIME

f.lux

No es una herramienta de para mejorar la productividad como tal, pero sí que puede ayudarte a tener la vista menos cansada y a mejorar la salud ocular cuando pasas mucho tiempo frente a una pantalla. Eso también puede influir en el rendimiento de forma indirecta. Con ella, según tu zona horaria y la posición solar, se podrá modificar el brillo y el filtrado de la luz azul dañina.

f.lux

Osmo

Es una fantástica herramienta de productividad. Puede tener numerosos módulos, como un calendario, agenda de contactos, lista de tareas por hacer y sistema de recordatorios, notas, etc. Además, es muy simple de usar y configurar.

Osmo

Catfish

Catfish es una herramienta que hace uso del backend find y locate, los populares comandos para encontrar y localizar, pero con una sencilla GUI. Con ella tendrás todos los archivos localizados al instante, para que no pierdas más tiempo cuando no sabes donde está algo…

Catfish

FocusWriter

FocusWriter es una sencilla y relajante aplicación para escritura. Usa una interfaz oculta para acceder moviendo el mouse hacia los bordes de la pantalla, permitiendo que el programa tenga una apariencia familiar. De esa forma, te ayudará a sumergirte en tu trabajo.

FocusWriter

LastPass

LastPass ir introduciendo contraseñas también puede resultar engorroso cuando se usan multitud de servicios diferentes. Para mejorar la productividad en ese sentido y que no se te olviden las contraseñas (obligando a restablecer), puedes usar el gestor de contraseñas LastPass.

LastPass

Simplenote

Si deseas anotar tus ideas en cualquier momento o apuntar las tareas que tienes ue hacer, lo que debes recordar, etc. Simplenote es una sencilla app para tomar notas en el momento de una forma instantánea y simple. Y si lo prefieres, también puedes usar FreeMind, un software para crear mapas mentales y organizarte de la mejor forma posible.

Simplenote

 eHorus

Es un software de productividad SaaS, basado en la nube, y que permite el seguimiento del tiempo empleado en los proyectos. Además, aporta una plataforma segura para empresas y cuenta con Pandora FMS como garantía de éxito.

eHorus

from Linux Adictos https://ift.tt/3zpGNgc
via IFTTT