Despois de seis meses de desenvolvemento, presentouse o lanzamento do xestor do sistema systemd 257. Cambios clave: novas utilidades systemd-sbsign e systemd-keyutil, soporte para MPTCP cando se activa a través dun socket, soporte inicial para a construción coa biblioteca Musl C. updatectl utilidade para xestionar a instalación de actualizacións mediante systemd-sysupdate, a capacidade de lanzar servizos en espazos de nomes PID separados, protección contra a eliminación accidental de ficheiros cando se usa "systemd-tmpfiles —purge".
Entre os cambios na nova versión:
- Engadiuse unha nova utilidade, systemd-sbsign, para asinar dixitalmente ficheiros executábeis no formato PE (Portable Executable) deseñado para o seu uso ao iniciar no modo de arranque seguro EFI. Os motores e provedores proporcionados pola biblioteca OpenSSL pódense usar para a xeración de sinaturas. systemd-sbsign pódese usar como alternativa ás aplicacións sbsigntool e pesign na utilidade ukify ao xerar imaxes de núcleo universal (UKI), que combinan un cargador de arranque UEFI (stub de arranque UEFI) e unha imaxe de núcleo nun único ficheiro. Linux e o entorno do sistema initrd cargado na memoria.
- Engadiuse unha nova utilidade, systemd-keyutil, que implementa varias operacións en claves privadas e certificados X.509. Por exemplo, systemd-keyutil pódese usar para probar a capacidade de cargar claves privadas e certificados e extraer chaves públicas deles en formato PEM.
- Nas unidades ".socket" empregadas para garantir o funcionamento do mecanismo de activación do socket (inicio de procesos ao tentar establecer unha conexión de rede), impleméntase soporte para MPTCP (Multipath TCP), unha extensión do protocolo TCP para organizar o funcionamento dunha conexión TCP coa entrega de paquetes simultaneamente ao longo de varias rutas a través de diferentes interfaces de rede vinculadas a diferentes... Enderezos IP.
- Inclúe os cambios necesarios para construír usando a biblioteca estándar Musl C.
- Varios compoñentes de systemd que mostran indicadores de progreso (por exemplo, systemd-repart, systemd-sysupdate/updatectl e importctl) agora admiten o uso de secuencias ANSI para animar as visualizacións de progreso. Actualmente, estas secuencias só son compatibles con Windows Terminal (espérase que co tempo se transfira unha funcionalidade similar aos emuladores de terminais para Linux).
- Ampliáronse as capacidades do compoñente systemd-sysupdate, que se usan para detectar, descargar e instalar actualizacións automaticamente mediante un mecanismo atómico para substituír particións, ficheiros ou directorios (utilízanse dúas particións/ficheiros/directorios independentes, un dos cales contén o traballo actual. recurso e o outro instala a seguinte) actualización, despois de que se intercambian as seccións/arquivos/directorios). Na práctica, systemd-sysupdate xa se usa no sistema operativo GNOME.
Ademais do proceso systemd-sysupdate, engadiuse un servizo co mesmo nome que permite utilizar D-Bus para xestionar as actualizacións do sistema por parte dun usuario sen privilexios. Para xestionar o servizo, tamén se inclúe unha nova utilidade updatectl. Engadiuse a marca "--offline" a systemd-sysupdate para desactivar a descarga de metadatos na rede e usar só versións xa descargadas no sistema local. Engadido soporte para a saída en formato JSON para todos os comandos.
- Implementouse unha nova propiedade "PrivatePIDs" para servizos, coa que pode organizar o lanzamento de procesos con PID 1 (proceso de inicio) nun espazo de identificador de proceso separado (espazo de nomes PID). No entorno creado para o proceso iniciado, só serán visibles os procesos do espazo de nomes creado para el.
- Engadiuse compatibilidade para coincidencias que non distinguen maiúsculas e minúsculas coas regras udev (por exemplo, 'ATTR{foo}==i»abcd»'). Usando udev, é posible proporcionar aos usuarios locais sen privilexios acceso ("uaccess") ao dispositivo /dev/udmabuf, que é necesario para traballar con cámaras IPMI a través de libcamera. udev proporciona o recoñecemento de varias carteiras criptográficas de hardware cunha interface USB e establece a propiedade ID_HARDWARE_WALLET para elas, o que lle permite aplicarlles o modo "uaccess" para o acceso de usuarios sen privilexios.
- Engadíronse novos campos RELEASE_TYPE, EXPERIMENT e EXPERIMENT_URL ao ficheiro /etc/os-release. "RELEASE_TYPE" pode tomar os valores "experimental", "desenvolvemento", "estable" e "lts" para separar as versións estables das compilacións de desenvolvemento e experimentais. Os parámetros EXPERIMENT e EXPERIMENT_URL están destinados a explicar a esencia da compilación experimental.
- A utilidade run0, desenvolvida como substituto do programa sudo, engadiu a opción "--shell-prompt-prefix", que especifica a cadea de prefixo para o indicador do shell de comandos. Por defecto, o emoji "🦸" móstrase como prefixo para resaltar visualmente unha sesión elevada.
- En systemd-tmpfiles, para evitar a eliminación accidental de ficheiros incorrectos, a opción "--purge" agora só se aplica ás configuracións en tmpfiles.d/ que teñen a marca "$" establecida explícitamente. A operación "--purge" tamén require agora especificar polo menos un ficheiro do directorio tmpfiles.d/. Para as cadeas de tipo 'L', engadiuse a marca '?', cando se especifique, só se creará unha ligazón simbólica se existe o ficheiro de destino.
- No xestor de servizos e nas utilidades relacionadas, o código de seguimento do proceso segue converténdose para usar PIDFD en lugar de PID. Un PIDFD está asociado a un proceso específico e non cambia, mentres que un PID pode asociarse a outro proceso despois de que finalice o proceso actual asociado con ese PID.
- Para os servizos, agora é posible especificar o valor "debug" no parámetro "RestartMode", no que o servizo fallido reiniciarase co modo de depuración activado (a variable de ambiente DEBUG_INVOCATION=1 está definida) e o valor LogLevelMax será temporalmente elevado ao nivel de depuración.
- O controlador PID 1 ten a capacidade de cargar regras para o módulo LSM IPE (Integrity Policy Enforcement), que definen a política de integridade para todo o sistema (que operacións están permitidas e como se debe verificar a autenticidade dos compoñentes).
- Aos ficheiros da unidade ".timer" engadiuse a opción "DeferReactivation", o que permite omitir a próxima activación do temporizador se o servizo aínda non rematou a súa execución desde a última activación.
- No parámetro do ficheiro de unidade PrivateUsers, agora é posible especificar o valor de "identidade" para habilitar a asignación de ID de usuario ao crear un espazo de nomes de usuario.
- Engadido soporte para o valor "desconectado" ao parámetro do ficheiro de unidade PrivateTmp, que usará instancias tmpfs separadas para os directorios /tmp/ e /var/tmp/.
- Engadiuse soporte para novos modos "privado" e "estricto" ao parámetro do ficheiro de unidade de ProtectControlGroups, cando se estableceu, créase un novo espazo de nomes cgroup para o servizo e montase cgroupfs. Cando se establece a opción "estricta", cgroupfs está montado en modo de só lectura.
- Os parámetros StateDirectory, RuntimeDirectory, CacheDirectory, LogsDirectory e ConfigurationDirectory ofrecen a posibilidade de usar a marca ':ro' para restrinxir o acceso aos directorios correspondentes ao modo de só lectura.
- Engadiuse compatibilidade para o valor "firmware" ao parámetro da liña de comandos do núcleo "systemd.machine_id", no que o identificador do sistema (ID da máquina) calcularase en función do UUID de SMBIOS/DeviceTree.
- Engadiuse compatibilidade coas chamadas de sistema mseal(), listmount() e statmount() introducidas nas versións recentes do kernel. Linux.
- As utilidades resolvectl, timedatectl e systemd-inhibit agora admiten autorización interactiva mediante Polkit.
- A utilidade systemctl engadiu a posibilidade de usar a marca "--now" no comando "reactivar".
- Engadiuse a opción "--json" á utilidade systemd-mount para a saída en formato JSON (por exemplo, cando se especifica xunto con "--list-devices", sairá unha lista de dispositivos en formato JSON).
- Engadíronse opcións "-l" e "--full" á utilidade "localectl" para desactivar o recorte de liñas longas durante a saída.
- A opción HibernateOnACPower engadiuse a sleep.conf, que permite atrasar o cambio ao modo de suspensión ata que o dispositivo se desconecte da fonte de enerxía estacionaria.
- En systemd-sysusers, engadiuse soporte para o modificador "!" ás liñas "u", co que pode crear contas de usuario completamente bloqueadas (anteriormente, se usaba un contrasinal incorrecto para bloquear un usuario, que, por exemplo, non provocou o bloqueo durante a autenticación de chave en SSH).
- Systemd-coredump engade unha opción "EnterNamespace" que permite o acceso ao espazo do punto de montaxe de calquera proceso colapsado para obter os seus símbolos de depuración. Na práctica, a opción pode ser útil para organizar o rastrexo dos ficheiros principais das aplicacións que se executan en contedores illados.
- systemd-logind inclúe o procesamento da combinación Ctrl-Alt-Shift-Esc para enviar o sinal org.freedesktop.login1.SecureAttentionKey aos compoñentes do contorno do usuario cunha solicitude para mostrar un diálogo de inicio de sesión seguro. Implementouse a configuración "DesignatedMaintenanceTime" para programar automaticamente o traballo para que se complete nunha hora especificada. Por analoxía co soporte para dispositivos DRM e evdev, engadiuse soporte para configurar o acceso de usuarios sen privilexios para ocultar dispositivos (controladores de xogos e joysticks).
- systemd-machined agora admite inicios de sesión de clientes sen privilexios. máquinas virtuais e contedores. O acceso á funcionalidade systemd-machined ofrécese a través da API de Varlink, ademais de D-Bus.
- Engadiuse unha nova sección "[IPv6AddressLabel]" ao ficheiro de configuración networkd.conf para configurar etiquetas e prefixos para enderezos IPv6
- Engadiuse a opción "--stdin" ao comando "networkctl edit" para obter o contido do ficheiro do fluxo estándar. Engadiuse compatibilidade para editar e mostrar ficheiros .netdev especificando unha interface de rede para os comandos "networkctl edit" e "networkctl cat". Engadiuse a opción "--no-ask-password" para desactivar a autorización interactiva.
- Engadiuse unha opción "--certificate-source" ás utilidades ukify, bootctl, systemd-keyutil, systemd-measure, systemd-repart e systemd-sbsign para cargar un certificado X.509 a través do provedor OpenSSL en lugar de cargalo directamente desde un arquivo.
- systemd-boot engade a posibilidade de usar os botóns de volume para moverse cara arriba e abaixo polo menú de inicio, o que pode ser útil en dispositivos como teléfonos intelixentes. Engadiuse a compatibilidade para instalar a base de datos de arranque seguro UEFI en formato ESL (db/dbx/…) para systemd-boot á utilidade bootctl.
- Engadiuse a opción "--list-invocation" a journalctl para mostrar unha lista de chamadas de unidades e a opción "--invocation" ("-I") para mostrar os rexistros asociados só a unha chamada específica.
- systemd-nspawn engade soporte para o uso sen privilexios de FUSE (Sistema de ficheiros no espazo de usuario) nos contedores. Cando se utiliza a opción "--bind-user", as claves SSH do usuario necesarias para o acceso a través de SSH envíanse ao contedor.
- libsystemd engadiu unha nova interface de programación "sd-json" que usa o formato JSON, así como unha interface "sd-varlink" que usa IPC Varlink.
- A versión base recomendada do núcleo actualizouse á versión 5.4, creada en 2019. O próximo ano pensan deixar de admitir núcleos máis antigos e marcar a versión 5.4 como a versión base mínima compatible.
- O soporte para cgroups v1 quedou en desuso e está desactivado por defecto (para activalo, debes especificar SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1 na liña de comandos do núcleo ademais de habilitalo na configuración do sistema). A próxima versión de systemd 258 planea eliminar completamente o código relacionado con cgroups v1. A versión 258 de Systemd tamén está programada para eliminar o soporte para os scripts de servizo de System V.
Fonte: opennet.ru
