Lanzamiento del gestor del sistema systemd 257.

Después de medio año de desarrollo, se presenta el lanzamiento del gestor de sistemas systemd 257. Cambios clave: nuevas utilidades systemd-sbsign y systemd-keyutil, soporte para MPTCP al activarse por socket, soporte inicial para compilación con la biblioteca C Musl, herramienta updatectl para gestionar la instalación de actualizaciones a través de systemd-sysupdate, posibilidad de ejecutar servicios en un espacio de nombres PID separado, protección contra eliminación accidental de archivos al utilizar «systemd-tmpfiles --purge».

Entre los cambios en la nueva versión:

  • Se ha añadido una nueva utilidad systemd-sbsign para firmar digitalmente archivos ejecutables en formato PE (Portable Executable), destinados a ser utilizados durante el arranque en modo EFI Secure Boot. Para la formación de la firma, se pueden utilizar motores y proveedores proporcionados por la biblioteca OpenSSL. Systemd-sbsign puede usarse como una alternativa a las aplicaciones sbsigntool y pesign en la utilidad ukify para formar imágenes universales del núcleo UKI (Unified Kernel Image), que combinan en un solo archivo el cargador para UEFI (UEFI boot stub), la imagen del núcleo de Linux y el entorno del sistema en memoria initrd.
  • Se ha añadido una nueva utilidad systemd-keyutil, que implementa diversas operaciones sobre claves privadas y certificados X.509. Por ejemplo, systemd-keyutil se puede usar para verificar la capacidad de carga de claves privadas y certificados, así como para extraer de ellos claves públicas en formato PEM.
  • En las unidades «.socket», utilizadas para garantizar el funcionamiento del mecanismo de activación por socket (iniciar procesos al intentar establecer una conexión de red), se implementó soporte para MPTCP (Multipath TCP), una extensión del protocolo TCP para organizar el funcionamiento de conexiones TCP con entrega de paquetes simultáneamente a través de múltiples rutas a través de diferentes interfaces de red, vinculadas a diferentes direcciones IP.
  • Se incluyeron cambios necesarios para la compilación utilizando la biblioteca estándar C Musl.
  • En varios componentes de systemd que muestran indicadores de progreso en la ejecución de operaciones (por ejemplo, systemd-repart, systemd-sysupdate/updatectl e importctl), se ha añadido la posibilidad de usar secuencias ANSI para animar la visualización del progreso. Estas secuencias actualmente son compatibles solo en Windows Terminal (se supone que en el futuro esta capacidad será trasladada también a emuladores de terminales para Linux).
  • Se han ampliado las capacidades del componente systemd-sysupdate, utilizado para la detección automática, descarga e instalación de actualizaciones mediante un mecanismo atómico de intercambio de secciones, archivos o directorios (se utilizan dos secciones/archivos/directorios independientes, uno de los cuales contiene el recurso en funcionamiento actual, mientras que en el otro se instala la actualización, tras lo cual se intercambian las secciones/archivos/directorios). En la práctica, systemd-sysupdate ya se utiliza en GNOME OS.

    Además del proceso systemd-sysupdate, se ha añadido un servicio homónimo que permite usar D-Bus para gestionar la actualización del sistema por parte de un usuario no privilegiado. Para gestionar el servicio, también se ha incluido una nueva utilidad llamada updatectl. Se ha añadido una bandera «—offline» a systemd-sysupdate para prohibir la descarga de metadatos a través de la red y utilizar únicamente las versiones ya descargadas en el sistema local. Se ha añadido soporte para la salida en formato JSON a todos los comandos.

  • Para los servicios se ha implementado una nueva propiedad llamada «PrivatePIDs», que permite organizar el lanzamiento de procesos con PID 1 (proceso init) en un espacio de identificación de procesos (espacio de nombres PID) separado. En el entorno creado para el proceso en ejecución, solo serán visibles los procesos del espacio de nombres creado para él.
  • Se ha añadido soporte para coincidencias sin distinción de mayúsculas y minúsculas en las reglas de udev (por ejemplo, ‘ATTR{foo}==i"abcd"‘). A través de udev se ha implementado el acceso a los dispositivos /dev/udmabuf para usuarios locales no privilegiados («uaccess»), lo que es necesario para trabajar con cámaras IPMI a través de libcamera. En udev se ha asegurado el reconocimiento de varios monederos criptográficos de hardware con interfaz USB y se ha asignado la propiedad ID_HARDWARE_WALLET, lo que permite aplicar el modo «uaccess» para el acceso de usuarios no privilegiados.
  • Se han añadido nuevos campos RELEASE_TYPE, EXPERIMENT y EXPERIMENT_URL al archivo /etc/os-release. «RELEASE_TYPE» puede tomar los valores «experimental», «development», «stable» y «lts» para separar las versiones estables de las que están en desarrollo y las compilaciones experimentales. Los parámetros EXPERIMENT y EXPERIMENT_URL están destinados a clarificar la naturaleza de la compilación experimental.
  • En la utilidad run0, desarrollada como reemplazo del programa sudo, se ha añadido la opción «—shell-prompt-prefix», que define la cadena de prefijo del aviso del shell. Por defecto, se muestra el emoji «🦸» como prefijo para resaltar visualmente la sesión con privilegios elevados.
  • En systemd-tmpfiles, para evitar la eliminación accidental de archivos, la opción «—purge» ahora se aplica solo a las configuraciones en tmpfiles.d/, para las cuales se ha establecido explícitamente la bandera «$». También ahora se requiere especificar al menos un archivo del directorio tmpfiles.d/ para realizar la operación «—purge». Para las líneas de tipo ‘L’ se ha añadido la bandera ‘?’, que, al ser especificada, solo creará un enlace simbólico si existe el archivo de destino.
  • En el gestor de servicios y las utilidades relacionadas, se ha continuado la transición del código de seguimiento de procesos para utilizar PIDFD en lugar de PID. El identificador PIDFD está vinculado a un proceso específico y no cambia, mientras que el PID puede ser asignado a otro proceso después de que el proceso actual asociado a ese PID haya terminado.
  • Para los servicios, se ha implementado la posibilidad de especificar el valor «debug» en el parámetro «RestartMode», lo que hará que el reinicio de un servicio fallido se realice con el modo de depuración activado (se establece la variable de entorno DEBUG_INVOCATION=1), y el valor de LogLevelMax se elevará temporalmente al nivel de depuración.
  • En el manejador PID 1 se ha implementado la capacidad de cargar reglas para el módulo LSM IPE (Integrity Policy Enforcement), que definen la política de integridad para todo el sistema (qué operaciones son permisibles y cómo deben verificarse la autenticidad de los componentes).
  • Se ha añadido a los archivos de unidad «.timer» la opción «DeferReactivation», que permite omitir la activación programada por el temporizador si el servicio aún no ha finalizado su ejecución desde la última activación.
  • En el parámetro de los archivos de unidad PrivateUsers se ha habilitado la posibilidad de especificar el valor «identity» para activar la asignación de identificadores de usuario al crear un espacio de nombres (user namespace).
  • Se ha añadido soporte para el valor «disconnected» en el parámetro de los archivos de unidad PrivateTmp, donde se utilizarán instancias separadas de tmpfs para los directorios /tmp/ y /var/tmp/.
  • Se añadió soporte para los nuevos modos «private» y «strict» en el parámetro unit de ProtectControlGroups, donde se crea un nuevo espacio de nombres cgroup (cgroup namespace) y se monta cgroupfs. Al establecer la opción «strict», se monta cgroupfs en modo de solo lectura.
  • En los parámetros StateDirectory, RuntimeDirectory, CacheDirectory, LogsDirectory y ConfigurationDirectory se proporciona la posibilidad de usar la bandera ‘:ro’ para restringir el acceso a los directorios correspondientes en modo de solo lectura.
  • Se añadió al parámetro de línea de comandos del núcleo «systemd.machine_id» soporte para el valor «firmware», donde el identificador del sistema (machine ID) será calculado en base al UUID de SMBIOS/DeviceTree.
  • Se añadió soporte para las llamadas al sistema mseal(), listmount() y statmount(), que aparecieron en versiones recientes del núcleo de Linux.
  • Se añadió soporte para la autorización interactiva mediante Polkit en las utilidades resolvectl, timedatectl y systemd-inhibit.
  • En la utilidad systemctl se ha añadido la posibilidad de usar la bandera «—now» en el comando «reenable».
  • En la utilidad systemd-mount se añadió la opción «—json» para la salida en formato JSON (por ejemplo, al especificar junto con «—list-devices», se mostrará una lista de dispositivos en formato JSON).
  • Se añadieron las opciones «-l» y «—full» a la utilidad «localectl» para desactivar el recorte de líneas largas en la salida.
  • Se añadió la opción HibernateOnACPower en sleep.conf, que permite retrasar la transición a modo de suspensión hasta que el dispositivo se desconecte de la fuente de alimentación de CA.
  • En systemd-sysusers se añadió soporte para el modificador «!» en las líneas «u», permitiendo crear cuentas de usuario completamente bloqueadas (anteriormente, para bloquear un usuario se utilizaba la configuración de una contraseña incorrecta, que, por ejemplo, no bloqueaba la autenticación mediante claves en SSH).
  • En systemd-coredump se añadió la opción «EnterNamespace», que proporciona acceso al espacio de puntos de montaje de cualquier proceso que haya terminado de manera anómala para obtener sus símbolos de depuración. En la práctica, esta opción puede ser útil para organizar una retrotraza (backtrace) de core-files de aplicaciones ejecutadas en contenedores aislados.
  • En systemd-logind se habilitó el manejo de la combinación Ctrl-Alt-Shift-Esc para enviar a los componentes del entorno de usuario la señal org.freedesktop.login1.SecureAttentionKey, solicitando la presentación de un diálogo de inicio de sesión seguro. Se implementó la configuración «DesignatedMaintenanceTime» para la programación automática del apagado a una hora determinada. De manera similar al soporte de dispositivos DRM y evdev, se agregó soporte para la configuración de acceso de usuarios no privilegiados a dispositivos hidraw (controles de juego y joysticks).
  • En systemd-machined se agregó soporte para el registro de clientes no privilegiados máquinas virtuales y contenedores. Se proporcionó acceso a la funcionalidad de systemd-machined a través de la API Varlink, además de D-Bus.
  • Se añadió una nueva sección «[IPv6AddressLabel]» al archivo de configuración networkd.conf para configurar etiquetas y prefijos para direcciones IPv6.
  • Se agregó la opción «—stdin» al comando ‘networkctl edit’ para obtener el contenido del archivo desde el flujo estándar. Se incorporó soporte para editar y mostrar archivos .netdev en los comandos ‘networkctl edit’ y ‘networkctl cat’ mediante la especificación de la interfaz de red. Se agregó la opción «—no-ask-password» para desactivar la autorización interactiva.
  • A las utilidades ukify, bootctl, systemd-keyutil, systemd-measure, systemd-repart y systemd-sbsign se les añadió la opción «—certificate-source» para cargar un certificado X.509 a través del proveedor OpenSSL en lugar de cargarlo directamente desde un archivo.
  • En systemd-boot se agregó la capacidad de usar los botones de control de volumen para desplazarse hacia arriba y hacia abajo en el menú de arranque, lo que puede ser útil en dispositivos como smartphones. En la utilidad bootctl se añadió soporte para establecer la base de datos UEFI Secure Boot en formato ESL(db/dbx/…) para systemd-boot.
  • Se añadió la opción «—list-invocation» a journalctl para mostrar una lista de invocaciones de unidades y la opción «—invocation» («-I») para mostrar registros relacionados solo con una invocación específica.
  • En systemd-nspawn se agregó soporte para el uso no privilegiado de FUSE (Filesystem in Userspace) en contenedores. Al usar la opción «—bind-user», se habilita la transferencia de las claves SSH del usuario al contenedor, necesarias para el acceso por SSH.
  • En libsystemd se incorporó una nueva interfaz de programación «sd-json», que utiliza el formato JSON, así como una interfaz «sd-varlink», que utiliza IPC Varlink.
  • La versión base recomendada del kernel se ha actualizado a la 5.4, lanzada en 2019. El próximo año se planea finalizar el soporte para versiones de kernels más antiguas y marcar la versión 5.4 como la versión mínima de soporte.
  • El soporte para cgroups v1 se ha declarado obsoleto y está deshabilitado por defecto (para habilitarlo en la línea de comandos del kernel, debe establecer SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1 además de activarlo en la configuración de systemd). En la próxima versión de systemd 258 se planea eliminar completamente el código relacionado con cgroups v1. También se prevé la eliminación del soporte para scripts de servicios de System V en la versión systemd 258.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster