versión 249 del administrador del sistema systemd

Después de tres meses de desarrollo, se presenta el lanzamiento del administrador del sistema systemd 249. La nueva versión brinda la capacidad de definir usuarios/grupos en formato JSON, estabiliza el protocolo Journal, simplifica la organización de la carga de particiones de disco sucesivas y agrega la capacidad de vincula programas BPF a servicios e implementa mapeo de identificadores de usuarios en particiones montadas, se ofrece una gran parte de nuevas configuraciones de red y oportunidades para lanzar contenedores.

Cambios importantes:

  • El protocolo Journal está documentado y se puede utilizar en clientes en lugar del protocolo syslog para la entrega local de registros. El protocolo Journal se ha implementado durante mucho tiempo y ya se utiliza en algunas bibliotecas cliente; sin embargo, su soporte oficial acaba de anunciarse.
  • Userdb y nss-systemd brindan soporte para leer definiciones de usuario adicionales ubicadas en los directorios /etc/userdb/, /run/userdb/, /run/host/userdb/ y /usr/lib/userdb/, especificados en formato JSON. Cabe señalar que esta característica proporcionará un mecanismo adicional para crear usuarios en el sistema, brindándole una integración completa con NSS y /etc/shadow. La compatibilidad con JSON para entradas de usuarios/grupos también permitirá que se adjunten diversas configuraciones de administración de recursos y otras configuraciones a los usuarios que pam_systemd y systemd-logind reconocen.
  • nss-systemd proporciona una síntesis de las entradas de usuarios/grupos en /etc/shadow usando contraseñas hash de systemd-homed.
  • Se ha implementado un mecanismo que simplifica la organización de las actualizaciones utilizando particiones de disco que se reemplazan entre sí (una partición está activa y la segunda está de repuesto; la actualización se copia en la partición de repuesto, después de lo cual se activa). Si hay dos particiones raíz o /usr en la imagen del disco y udev no ha detectado la presencia del parámetro 'root=', o está procesando imágenes de disco especificadas mediante la opción "--image" en systemd-nspawn y systemd -dissect utilidades, la partición de arranque se puede calcular comparando etiquetas GPT (asumiendo que la etiqueta GPT menciona el número de versión del contenido de la partición y systemd seleccionará la partición con los cambios más recientes).
  • Se ha agregado una configuración de programa BPF a los archivos de servicio, con la que puede organizar la carga de programas BPF en el kernel y administrarlos vinculándolos a servicios systemd específicos.
  • Systemd-fstab-generator y systemd-repart agregan la capacidad de arrancar desde discos que solo tienen una partición /usr y ninguna partición raíz (la partición raíz será generada por systemd-repart durante el primer arranque).
  • En systemd-nspawn, la opción "--private-user-chown" ha sido reemplazada por la opción más genérica "--private-user-ownership", que puede aceptar valores "chown" como equivalente de "-- private-user-chown", "off" para deshabilitar la configuración anterior, "map" para asignar ID de usuario en sistemas de archivos montados y "auto" para seleccionar "map" si la funcionalidad requerida está presente en el kernel (5.12+) o retroceder a una llamada recursiva a "chown" en caso contrario. Al utilizar la asignación, puede asignar los archivos de un usuario en una partición externa montada a otro usuario en el sistema actual, lo que facilita compartir archivos entre diferentes usuarios. En el mecanismo de directorio de inicio portátil systemd-homed, el mapeo permitirá a los usuarios mover sus directorios de inicio a medios externos y usarlos en diferentes computadoras que no tengan el mismo diseño de ID de usuario.
  • En systemd-nspawn, la opción "--private-user" ahora puede usar el valor "identidad" para reflejar directamente las ID de los usuarios al configurar un espacio de nombres de usuario, es decir. El UID 0 y el UID 1 en el contenedor se reflejarán en el UID 0 y el UID 1 en el lado del host, para reducir los vectores de ataque (el contenedor solo recibirá capacidades de proceso en su espacio de nombres).
  • La opción “--bind-user” se ha agregado a systemd-nspawn para reenviar una cuenta de usuario existente en el entorno host al contenedor (el directorio de inicio se monta en el contenedor, se agrega una entrada de usuario/grupo y la asignación de UID). se realiza entre el contenedor y el entorno host).
  • Se agregó soporte para solicitar contraseñas establecidas para systemd-ask-password y systemd-sysusers (passwd.hashed-password. y contraseña.contraseña de texto plano. ) utilizando el mecanismo introducido en systemd 247 para transferir de forma segura datos confidenciales utilizando archivos intermedios en un directorio separado. De forma predeterminada, las credenciales se aceptan del proceso con PID1, que las recibe, por ejemplo, del administrador de administración de contenedores, lo que le permite configurar la contraseña del usuario en el primer arranque.
  • systemd-firstboot agrega soporte para usar el mecanismo de transferencia segura de datos confidenciales para consultar varios parámetros del sistema, que se pueden usar para inicializar la configuración del sistema al iniciar por primera vez una imagen de contenedor que no tiene la configuración necesaria en el directorio /etc.
  • El proceso PID 1 garantiza que tanto el nombre de la unidad como la descripción se muestren durante el arranque. Puede cambiar la salida mediante el parámetro “StatusUnitFormat=combined” en system.conf o la opción de línea de comando del kernel “systemd.status-unit-format=combined”
  • La opción "--image" se ha agregado a las utilidades systemd-machine-id-setup y systemd-repart para transferir un archivo con una identificación de máquina a una imagen de disco o para aumentar el tamaño de una imagen de disco.
  • Se agregó un parámetro MakeDirectories al archivo de configuración de partición utilizado por la utilidad systemd-repart, que se puede usar para crear directorios arbitrarios en el sistema de archivos creado antes de reflejarse en la tabla de particiones (por ejemplo, para crear directorios para puntos de montaje en la partición raíz para que pueda montar inmediatamente la partición en modo de sólo lectura). Para controlar los indicadores GPT en las secciones creadas, se han agregado los parámetros correspondientes Flags, ReadOnly y NoAuto. El parámetro CopyBlocks tiene un valor de "auto" para seleccionar automáticamente la partición de inicio actual como fuente al copiar bloques (por ejemplo, cuando necesita transferir su propia partición raíz a un nuevo medio).
  • GPT implementa el indicador "grow-file-system", que es similar a la opción de montaje x-systemd.growfs y proporciona expansión automática del tamaño de FS hasta los límites del dispositivo de bloque si el tamaño de FS es más pequeño que la partición. La bandera es aplicable a los sistemas de archivos Ext3, XFS y Btrfs, y se puede aplicar a particiones detectadas automáticamente. La bandera está habilitada de forma predeterminada para las particiones grabables creadas automáticamente a través de systemd-repart. Se agregó la opción GrowFileSystem para configurar el indicador en systemd-repart.
  • El archivo /etc/os-release proporciona soporte para las nuevas variables IMAGE_VERSION e IMAGE_ID para determinar la versión y el ID de imágenes actualizadas atómicamente. Los especificadores %M y %A se proponen para sustituir valores específicos en varios comandos.
  • Se ha agregado el parámetro “--extension” a la utilidad portablectl para activar imágenes de extensión del sistema portátiles (por ejemplo, a través de ellas puede distribuir imágenes con servicios adicionales integrados en la partición raíz).
  • La utilidad systemd-coredump proporciona la extracción de información de identificación de compilación de ELF al generar un volcado de núcleo de un proceso, lo que puede ser útil para determinar a qué paquete pertenece un proceso fallido si se creó información sobre el nombre y la versión de los paquetes deb o rpm. en los archivos ELF.
  • Se ha agregado a udev una nueva base de hardware para dispositivos FireWire (IEEE 1394).
  • En udev, se agregaron tres cambios al esquema de selección de nombres de interfaz de red “net_id” que violan la compatibilidad con versiones anteriores: los caracteres incorrectos en los nombres de las interfaces ahora se reemplazan con “_”; Los nombres de las ranuras PCI hotplug para sistemas s390 se procesan en formato hexadecimal; Se permite el uso de hasta 65535 dispositivos PCI integrados (anteriormente estaban bloqueados los números superiores a 16383).
  • systemd-resolved agrega el dominio “home.arpa” a la lista NTA (Negative Trust Anchors), que se recomienda para redes domésticas locales, pero no se usa en DNSSEC.
  • El parámetro CPUAffinity proporciona análisis de los especificadores "%".
  • Se ha agregado un parámetro ManageForeignRoutingPolicyRules a los archivos .network, que se puede utilizar para excluir systemd-networkd del procesamiento de políticas de enrutamiento de terceros.
  • El parámetro RequiredFamilyForOnline se agregó a los archivos ".network" para determinar la presencia de una dirección IPv4 o IPv6 como señal de que la interfaz de red está en el estado "en línea". Networkctl proporciona una visualización del estado "en línea" de cada enlace.
  • Se agregó el parámetro OutgoingInterface a los archivos .network para definir interfaces salientes al configurar puentes de red.
  • Se ha agregado un parámetro de grupo a los archivos “.network”, lo que le permite configurar un grupo de rutas múltiples para las entradas en la sección “[NextHop]”.
  • Se agregaron las opciones "-4" y "-6" a systemd-network-wait-online para limitar las esperas de conexión solo a IPv4 o IPv6.
  • Se ha agregado un parámetro RelayTarget a la configuración del servidor DHCP, que cambia el servidor al modo DHCP Ralay. Para una configuración adicional del relé DHCP, se ofrecen las opciones RelayAgentCircuitId y RelayAgentRemoteId.
  • El parámetro ServerAddress se ha agregado al servidor DHCP, lo que le permite configurar explícitamente la dirección IP del servidor (de lo contrario, la dirección se selecciona automáticamente).
  • El servidor DHCP implementa la sección [DHCPServerStaticLease], que le permite configurar enlaces de direcciones estáticas (arrendamientos DHCP), especificando enlaces de IP fijos a direcciones MAC y viceversa.
  • La configuración RestrictAddressFamilies admite el valor "ninguno", lo que significa que el servicio no tendrá acceso a sockets de ninguna familia de direcciones.
  • En los archivos “.network” en las secciones [Dirección], [DHCPv6PrefixDelegation] y [IPv6Prefix], se implementa la compatibilidad con la configuración RouteMetric, que le permite especificar la métrica para el prefijo de ruta creado para la dirección especificada.
  • nss-myhostname y systemd-resolved proporcionan una síntesis de registros DNS con direcciones para hosts con un nombre especial "_outbound", para los cuales siempre se emite una IP local, elegida de acuerdo con las rutas predeterminadas utilizadas para las conexiones salientes.
  • En los archivos .network, en la sección “[DHCPv4]”, se agregó una configuración activa predeterminada de RoutesToNTP, que requiere agregar una ruta separada a través de la interfaz de red actual para acceder a la dirección del servidor NTP obtenida para esta interfaz usando DHCP (similar a DNS , la configuración le permite garantizar que el tráfico al servidor NTP se enrutará a través de la interfaz a través de la cual se recibió esta dirección).
  • Se agregaron configuraciones de SocketBindAllow y SocketBindDeny para controlar el acceso a los sockets vinculados al servicio actual.
  • Para los archivos unitarios, se implementó una configuración condicional llamada ConditionFirmware, que le permite crear comprobaciones que evalúan las funciones del firmware, como el trabajo en sistemas UEFI y Device.tree, así como verificar la compatibilidad con ciertas capacidades del árbol de dispositivos.
  • Se implementó la opción ConditionOSRelease para verificar los campos en el archivo /etc/os-release. Al definir las condiciones para verificar los valores de los campos, los operadores “="”, “!=”, “<“, “<=”, “>=”, “>” son aceptables.
  • En la utilidad hostnamectl, comandos como “get-xyz” y “set-xyz” están libres de los prefijos “get” y “set”, por ejemplo, en lugar de “hostnamectl get-hostname” y “hostnamectl “set-hostname” puede utilizar el comando “hostnamectl hostname”, cuya asignación de un valor se determina especificando un argumento adicional (“hostnamectl hostname value”). Se ha mantenido la compatibilidad con comandos más antiguos para garantizar la compatibilidad.
  • La utilidad systemd-detect-virt y la configuración ConditionVirtualization garantizan la identificación correcta de los entornos Amazon EC2.
  • La configuración LogLevelMax en archivos unitarios ahora se aplica no solo a los mensajes de registro generados por el servicio, sino también a los mensajes del proceso PID 1 que mencionan el servicio.
  • Se proporcionó la capacidad de incluir datos SBAT (UEFI Secure Boot Advanced Targeting) en archivos EFI PE de systemd-boot.
  • /etc/crypttab implementa nuevas opciones "headless" y "password-echo": la primera le permite omitir todas las operaciones asociadas con la solicitud interactiva de contraseñas y PIN del usuario, y la segunda le permite configurar el método para mostrar la entrada de contraseña. (no muestra nada, muestra carácter por carácter y muestra asteriscos). La opción “--echo” se agregó a systemd-ask-password para propósitos similares.
  • systemd-cryptenroll, systemd-cryptsetup y systemd-homed han ampliado el soporte para desbloquear particiones LUKS2 cifradas utilizando tokens FIDO2. Se agregaron nuevas opciones “--fido2-with-user-presence”, “--fido2-with-user-verification” y “-fido2-with-client-pin” para controlar la verificación de presencia física del usuario, la verificación y la necesidad de ingresar. un código PIN.
  • Se agregaron las opciones “--user”, “--system”, “--merge” y “--file” a systemd-journal-gatewayd, similares a las opciones de journalctl.
  • Además de las dependencias directas entre unidades especificadas a través de los parámetros OnFailure y Slice, se ha agregado soporte para dependencias inversas implícitas OnFailureOf y SliceOf, lo que puede ser útil, por ejemplo, para determinar todas las unidades incluidas en el segmento.
  • Se agregaron nuevos tipos de dependencias entre unidades: OnSuccess y OnSuccessOf (lo opuesto a OnFailure, llamado tras una finalización exitosa); PropagatesStopTo y StopPropagateFrom (le permiten propagar el evento de detención de una unidad a otra unidad); Upholds y UpheldBy (alternativa a Restart).
  • La utilidad systemd-ask-password ahora tiene una opción “--emoji” para controlar la apariencia del símbolo del candado (🔐) en la línea de entrada de contraseña.
  • Se agregó documentación sobre la estructura del árbol de fuentes de systemd.
  • Para las unidades, se ha agregado una propiedad MemoryAvailable, que muestra cuánta memoria le queda a la unidad antes de alcanzar el límite establecido a través de los parámetros MemoryMax, MemoryHigh o MemoryAvailable.

Fuente: opennet.ru

Añadir un comentario