versión 242 del administrador del sistema systemd

[: ru]

Después de dos meses de desarrollo presentado lanzamiento del administrador del sistema systemd 242. Entre las innovaciones, podemos destacar el soporte para túneles L2TP, la capacidad de controlar el comportamiento de systemd-logind al reiniciar a través de variables de entorno, soporte para particiones de arranque XBOOTLDR extendidas para montar /boot, la capacidad de arrancar con una partición raíz en overlayfs, así como una gran cantidad de nuevas configuraciones para diferentes tipos de unidades.

Cambios importantes:

  • systemd-networkd proporciona soporte para túneles L2TP;
  • sd-boot y bootctl brindan soporte para particiones XBOOTLDR (Extended Boot Loader) diseñadas para montarse en /boot, además de particiones ESP montadas en /efi o /boot/efi. Los kernels, configuraciones, imágenes initrd y EFI ahora se pueden iniciar desde particiones ESP y XBOOTLDR. Este cambio le permite utilizar el gestor de arranque sd-boot en escenarios más conservadores, cuando el gestor de arranque en sí está ubicado en el ESP y los núcleos cargados y los metadatos asociados se colocan en una sección separada;
  • Se agregó la capacidad de arrancar con la opción “systemd.volatile=overlay” pasada al kernel, lo que le permite colocar la partición raíz en superposiciones y organizar el trabajo sobre una imagen de solo lectura del directorio raíz con los cambios escritos en un directorio separado en tmpfs (los cambios en esta configuración se pierden después de reiniciar). Por analogía, systemd-nspawn ha agregado la opción “--volatile=overlay” para usar una funcionalidad similar en contenedores;
  • systemd-nspawn ha agregado la opción "--oci-bundle" para permitir el uso de paquetes de tiempo de ejecución para proporcionar lanzamiento aislado de contenedores que cumplan con la especificación Open Container Initiative (OCI). Para uso en la línea de comando y unidades nspawn, se propone soporte para varias opciones descritas en la especificación OCI, por ejemplo, las opciones “--inaccesible” e “Inaccessible” se pueden usar para excluir partes del sistema de archivos, y el “ Se han agregado opciones --console” para configurar flujos de salida estándar y "-pipe";
  • Se agregó la capacidad de controlar el comportamiento de systemd-logind a través de variables de entorno: $SYSTEMD_REBOOT_ TO_FIRMWARE_SETUP,
    $SYSTEMD_REBOOT_TO_BOOT_LOADER_MENU y
    $SYSTEMD_REBOOT_ TO_BOOT_LOADER_ENTRY. Usando estas variables, puede conectar sus propios controladores de proceso de reinicio (/run/systemd/reboot-to-firmware-setup, /run/systemd/reboot-to-boot-loader-menu y
    /run/systemd/reboot-to-boot-loader-entry) o deshabilítelos por completo (si el valor está establecido en falso);

  • Opciones agregadas “-boot-load-menu=” y
    “—boot-loader-entry=”, que le permite seleccionar un elemento del menú de inicio específico o un modo de inicio después de reiniciar;

  • Se agregó un nuevo comando de aislamiento de espacio aislado "RestrictSUIDSGID=", que usa seccomp para prohibir la creación de archivos con indicadores SUID/SGID;
  • Se aseguró que las restricciones “NoNewPrivileges” y “RestrictSUIDSGID” se apliquen de forma predeterminada en los servicios con el modo de generación dinámica de ID de usuario (“DynamicUser” habilitado);
  • La configuración predeterminada MACAddressPolicy=persistent en archivos .link se ha cambiado para cubrir más dispositivos. Las interfaces de puentes de red, túneles (tun, tap) y enlaces agregados (bond) no se identifican excepto por el nombre de la interfaz de red, por lo que este nombre ahora se utiliza como base para vincular direcciones MAC e IPv4. Además, se agregó la configuración “MACAddressPolicy=random”, que se puede utilizar para vincular direcciones MAC e IPv4 a dispositivos en orden aleatorio;
  • Los archivos de unidades ".device" generados a través de systemd-fstab-generator ya no incluyen las unidades ".mount" correspondientes como dependencias en la sección "Wants=". Simplemente conectar un dispositivo ya no inicia automáticamente una unidad para montar, pero dichas unidades aún se pueden iniciar por otros motivos, como como parte de local-fs.target o como una dependencia de otras unidades que dependen de local-fs.target. ;
  • Se agregó soporte para máscaras (“*”, etc.) a los comandos “networkctl list/status/lldp” para filtrar ciertos grupos de interfaces de red por parte de su nombre;
  • La variable de entorno $PIDFILE ahora se configura utilizando la ruta absoluta configurada en los servicios a través del parámetro "PIDFile=;".
  • Los servidores públicos de Cloudflare (1.1.1.1) se han agregado a la cantidad de servidores DNS de respaldo utilizados si el DNS principal no está definido explícitamente. Para redefinir la lista de servidores DNS de respaldo, puede usar la opción “-Ddns-servers=”;
  • Al detectar la presencia de un controlador de dispositivo USB, se inicia automáticamente un nuevo controlador usb-gadget.target (cuando el sistema se ejecuta en un dispositivo periférico USB);
  • Para archivos unitarios, se ha implementado la configuración “CPUQuotaPeriodSec=", que determina el período de tiempo relativo al cual se mide la cuota de tiempo de CPU, establecido a través de la configuración "CPUQuota=";
  • Para los archivos unitarios, se ha implementado la configuración “ProtectHostname=", que prohíbe a los servicios cambiar información sobre el nombre del host, incluso si tienen los permisos adecuados;
  • Para archivos unitarios, se ha implementado la configuración “NetworkNamespacePath=", que le permite vincular un espacio de nombres a servicios o unidades de socket especificando la ruta al archivo de espacio de nombres en el pseudo-FS /proc;
  • Se agregó la capacidad de deshabilitar la sustitución de variables de entorno para procesos iniciados usando la configuración "ExecStart=" agregando un carácter ":" antes del comando de inicio;
  • Para temporizadores (unidades .timer) nuevos indicadores “OnClockChange=” y
    “OnTimezoneChange=”, con el que se puede controlar la llamada de la unidad cuando cambia la hora del sistema o la zona horaria;

  • Se agregaron nuevas configuraciones "ConditionMemory=" y "ConditionCPUs=", que determinan las condiciones para llamar a una unidad dependiendo del tamaño de la memoria y la cantidad de núcleos de CPU (por ejemplo, un servicio que consume muchos recursos solo se puede iniciar si se cuenta con la cantidad requerida de RAM está disponible);
  • Se agregó una nueva unidad time-set.target que acepta la hora del sistema configurada localmente, sin usar la conciliación con servidores de hora externos usando la unidad time-sync.target. La nueva unidad puede ser utilizada por servicios que necesitan la precisión de relojes locales no sincronizados;
  • La opción “--show-transaction” se ha agregado a “systemctl start” y comandos similares; cuando se especifica, se muestra un resumen de todos los trabajos agregados a la cola debido a la operación solicitada;
  • systemd-networkd implementa la definición de un nuevo estado "esclavizado", utilizado en lugar de "degradado" o "portador" para interfaces de red que forman parte de enlaces agregados o puentes de red. Para las interfaces primarias, en caso de problemas con uno de los enlaces compuestos, se ha agregado el estado de "portadora degradada";
  • Se agregó la opción “IgnoreCarrierLoss=” a las unidades .network para guardar la configuración de red en caso de pérdida de conexión;
  • A través de la configuración “RequiredForOnline=" en unidades .network, ahora puede establecer el estado de enlace mínimo aceptable requerido para transferir la interfaz de red a "en línea" y activar el controlador systemd-networkd-wait-online;
  • Se agregó la opción “--any” a systemd-networkd-wait-online para esperar la preparación de cualquiera de las interfaces de red especificadas en lugar de todas, así como la opción “--operative-state=” para determinar el estado de el enlace que indica que está listo;
  • Se agregaron las configuraciones “UseAutonomousPrefix=” y “UseOnLinkPrefix=” a las unidades .network, que se pueden usar para ignorar prefijos al recibir
    anuncio de un enrutador IPv6 (RA, Anuncio de enrutador);

  • En unidades .network, se han agregado las configuraciones “MulticastFlood=”, “NeighborSuppression=” y “Learning=” para cambiar los parámetros operativos del puente de red, así como la configuración “TripleSampling=” para cambiar el modo TRIPLE-SAMPLING de interfaces virtuales CAN;
  • Se han agregado las configuraciones “PrivateKeyFile=" y "PresharedKeyFile=" a las unidades .netdev, con las que puede especificar claves privadas y compartidas (PSK) para las interfaces WireGuard VPN;
  • Se agregaron las opciones Same-cpu-crypt y submit-from-crypt-cpus a /etc/crypttab, que controlan el comportamiento del programador al migrar trabajo relacionado con el cifrado entre núcleos de CPU;
  • systemd-tmpfiles proporciona procesamiento de archivos de bloqueo antes de realizar operaciones en directorios con archivos temporales, lo que le permite deshabilitar el trabajo de limpieza de archivos obsoletos durante ciertas acciones (por ejemplo, al descomprimir un archivo tar en /tmp, es posible que se eliminen archivos muy antiguos). abiertos que no se pueden eliminar antes de que finalice la acción con ellos);
  • El comando "systemd-analyze cat-config" brinda la capacidad de analizar una configuración dividida en varios archivos, por ejemplo, ajustes preestablecidos de usuario y sistema, el contenido de tmpfiles.d y sysusers.d, reglas de udev, etc.
  • Se agregó la opción "--cursor-file=" a "journalctl" para especificar un archivo para cargar y guardar la posición del cursor;
  • Se agregó la definición del hipervisor ACRN y el subsistema WSL (subsistema de Windows para Linux) a systemd-detect-virt para la bifurcación posterior utilizando el operador condicional “ConditionVirtualization”;
  • Durante la instalación de systemd (al ejecutar "ninja install"), la creación de enlaces simbólicos a los archivos systemd-networkd.service, systemd-networkd.socket,
    systemd-resolved.service, remoto-cryptsetup.target, remoto-fs.target,
    systemd-networkd-wait-online.service y systemd-timesyncd.service. Para crear estos archivos, ahora necesita ejecutar el comando "systemctl preset-all".

fuenteopennet.ru

Después de dos meses de desarrollo presentado lanzamiento del administrador del sistema systemd 242. Entre las innovaciones, podemos destacar el soporte para túneles L2TP, la capacidad de controlar el comportamiento de systemd-logind al reiniciar a través de variables de entorno, soporte para particiones de arranque XBOOTLDR extendidas para montar /boot, la capacidad de arrancar con una partición raíz en overlayfs, así como una gran cantidad de nuevas configuraciones para diferentes tipos de unidades.

Cambios importantes:

  • systemd-networkd proporciona soporte para túneles L2TP;
  • sd-boot y bootctl brindan soporte para particiones XBOOTLDR (Extended Boot Loader) diseñadas para montarse en /boot, además de particiones ESP montadas en /efi o /boot/efi. Los kernels, configuraciones, imágenes initrd y EFI ahora se pueden iniciar desde particiones ESP y XBOOTLDR. Este cambio le permite utilizar el gestor de arranque sd-boot en escenarios más conservadores, cuando el gestor de arranque en sí está ubicado en el ESP y los núcleos cargados y los metadatos asociados se colocan en una sección separada;
  • Se agregó la capacidad de arrancar con la opción “systemd.volatile=overlay” pasada al kernel, lo que le permite colocar la partición raíz en superposiciones y organizar el trabajo sobre una imagen de solo lectura del directorio raíz con los cambios escritos en un directorio separado en tmpfs (los cambios en esta configuración se pierden después de reiniciar). Por analogía, systemd-nspawn ha agregado la opción “--volatile=overlay” para usar una funcionalidad similar en contenedores;
  • systemd-nspawn ha agregado la opción "--oci-bundle" para permitir el uso de paquetes de tiempo de ejecución para proporcionar lanzamiento aislado de contenedores que cumplan con la especificación Open Container Initiative (OCI). Para uso en la línea de comando y unidades nspawn, se propone soporte para varias opciones descritas en la especificación OCI, por ejemplo, las opciones “--inaccesible” e “Inaccessible” se pueden usar para excluir partes del sistema de archivos, y el “ Se han agregado opciones --console” para configurar flujos de salida estándar y "-pipe";
  • Se agregó la capacidad de controlar el comportamiento de systemd-logind a través de variables de entorno: $SYSTEMD_REBOOT_ TO_FIRMWARE_SETUP,
    $SYSTEMD_REBOOT_TO_BOOT_LOADER_MENU y
    $SYSTEMD_REBOOT_ TO_BOOT_LOADER_ENTRY. Usando estas variables, puede conectar sus propios controladores de proceso de reinicio (/run/systemd/reboot-to-firmware-setup, /run/systemd/reboot-to-boot-loader-menu y
    /run/systemd/reboot-to-boot-loader-entry) o deshabilítelos por completo (si el valor está establecido en falso);

  • Opciones agregadas “-boot-load-menu=” y
    “—boot-loader-entry=”, que le permite seleccionar un elemento del menú de inicio específico o un modo de inicio después de reiniciar;

  • Se agregó un nuevo comando de aislamiento de espacio aislado "RestrictSUIDSGID=", que usa seccomp para prohibir la creación de archivos con indicadores SUID/SGID;
  • Se aseguró que las restricciones “NoNewPrivileges” y “RestrictSUIDSGID” se apliquen de forma predeterminada en los servicios con el modo de generación dinámica de ID de usuario (“DynamicUser” habilitado);
  • La configuración predeterminada MACAddressPolicy=persistent en archivos .link se ha cambiado para cubrir más dispositivos. Las interfaces de puentes de red, túneles (tun, tap) y enlaces agregados (bond) no se identifican excepto por el nombre de la interfaz de red, por lo que este nombre ahora se utiliza como base para vincular direcciones MAC e IPv4. Además, se agregó la configuración “MACAddressPolicy=random”, que se puede utilizar para vincular direcciones MAC e IPv4 a dispositivos en orden aleatorio;
  • Los archivos de unidades ".device" generados a través de systemd-fstab-generator ya no incluyen las unidades ".mount" correspondientes como dependencias en la sección "Wants=". Simplemente conectar un dispositivo ya no inicia automáticamente una unidad para montar, pero dichas unidades aún se pueden iniciar por otros motivos, como como parte de local-fs.target o como una dependencia de otras unidades que dependen de local-fs.target. ;
  • Se agregó soporte para máscaras (“*”, etc.) a los comandos “networkctl list/status/lldp” para filtrar ciertos grupos de interfaces de red por parte de su nombre;
  • La variable de entorno $PIDFILE ahora se configura utilizando la ruta absoluta configurada en los servicios a través del parámetro "PIDFile=;".
  • Los servidores públicos de Cloudflare (1.1.1.1) se han agregado a la cantidad de servidores DNS de respaldo utilizados si el DNS principal no está definido explícitamente. Para redefinir la lista de servidores DNS de respaldo, puede usar la opción “-Ddns-servers=”;
  • Al detectar la presencia de un controlador de dispositivo USB, se inicia automáticamente un nuevo controlador usb-gadget.target (cuando el sistema se ejecuta en un dispositivo periférico USB);
  • Para archivos unitarios, se ha implementado la configuración “CPUQuotaPeriodSec=", que determina el período de tiempo relativo al cual se mide la cuota de tiempo de CPU, establecido a través de la configuración "CPUQuota=";
  • Para los archivos unitarios, se ha implementado la configuración “ProtectHostname=", que prohíbe a los servicios cambiar información sobre el nombre del host, incluso si tienen los permisos adecuados;
  • Para archivos unitarios, se ha implementado la configuración “NetworkNamespacePath=", que le permite vincular un espacio de nombres a servicios o unidades de socket especificando la ruta al archivo de espacio de nombres en el pseudo-FS /proc;
  • Se agregó la capacidad de deshabilitar la sustitución de variables de entorno para procesos iniciados usando la configuración "ExecStart=" agregando un carácter ":" antes del comando de inicio;
  • Para temporizadores (unidades .timer) nuevos indicadores “OnClockChange=” y
    “OnTimezoneChange=”, con el que se puede controlar la llamada de la unidad cuando cambia la hora del sistema o la zona horaria;

  • Se agregaron nuevas configuraciones "ConditionMemory=" y "ConditionCPUs=", que determinan las condiciones para llamar a una unidad dependiendo del tamaño de la memoria y la cantidad de núcleos de CPU (por ejemplo, un servicio que consume muchos recursos solo se puede iniciar si se cuenta con la cantidad requerida de RAM está disponible);
  • Se agregó una nueva unidad time-set.target que acepta la hora del sistema configurada localmente, sin usar la conciliación con servidores de hora externos usando la unidad time-sync.target. La nueva unidad puede ser utilizada por servicios que necesitan la precisión de relojes locales no sincronizados;
  • La opción “--show-transaction” se ha agregado a “systemctl start” y comandos similares; cuando se especifica, se muestra un resumen de todos los trabajos agregados a la cola debido a la operación solicitada;
  • systemd-networkd implementa la definición de un nuevo estado "esclavizado", utilizado en lugar de "degradado" o "portador" para interfaces de red que forman parte de enlaces agregados o puentes de red. Para las interfaces primarias, en caso de problemas con uno de los enlaces compuestos, se ha agregado el estado de "portadora degradada";
  • Se agregó la opción “IgnoreCarrierLoss=” a las unidades .network para guardar la configuración de red en caso de pérdida de conexión;
  • A través de la configuración “RequiredForOnline=" en unidades .network, ahora puede establecer el estado de enlace mínimo aceptable requerido para transferir la interfaz de red a "en línea" y activar el controlador systemd-networkd-wait-online;
  • Se agregó la opción “--any” a systemd-networkd-wait-online para esperar la preparación de cualquiera de las interfaces de red especificadas en lugar de todas, así como la opción “--operative-state=” para determinar el estado de el enlace que indica que está listo;
  • Se agregaron las configuraciones “UseAutonomousPrefix=” y “UseOnLinkPrefix=” a las unidades .network, que se pueden usar para ignorar prefijos al recibir
    anuncio de un enrutador IPv6 (RA, Anuncio de enrutador);

  • En unidades .network, se han agregado las configuraciones “MulticastFlood=”, “NeighborSuppression=” y “Learning=” para cambiar los parámetros operativos del puente de red, así como la configuración “TripleSampling=” para cambiar el modo TRIPLE-SAMPLING de interfaces virtuales CAN;
  • Se han agregado las configuraciones “PrivateKeyFile=" y "PresharedKeyFile=" a las unidades .netdev, con las que puede especificar claves privadas y compartidas (PSK) para las interfaces WireGuard VPN;
  • Se agregaron las opciones Same-cpu-crypt y submit-from-crypt-cpus a /etc/crypttab, que controlan el comportamiento del programador al migrar trabajo relacionado con el cifrado entre núcleos de CPU;
  • systemd-tmpfiles proporciona procesamiento de archivos de bloqueo antes de realizar operaciones en directorios con archivos temporales, lo que le permite deshabilitar el trabajo de limpieza de archivos obsoletos durante ciertas acciones (por ejemplo, al descomprimir un archivo tar en /tmp, es posible que se eliminen archivos muy antiguos). abiertos que no se pueden eliminar antes de que finalice la acción con ellos);
  • El comando "systemd-analyze cat-config" brinda la capacidad de analizar una configuración dividida en varios archivos, por ejemplo, ajustes preestablecidos de usuario y sistema, el contenido de tmpfiles.d y sysusers.d, reglas de udev, etc.
  • Se agregó la opción "--cursor-file=" a "journalctl" para especificar un archivo para cargar y guardar la posición del cursor;
  • Se agregó la definición del hipervisor ACRN y el subsistema WSL (subsistema de Windows para Linux) a systemd-detect-virt para la bifurcación posterior utilizando el operador condicional “ConditionVirtualization”;
  • Durante la instalación de systemd (al ejecutar "ninja install"), la creación de enlaces simbólicos a los archivos systemd-networkd.service, systemd-networkd.socket,
    systemd-resolved.service, remoto-cryptsetup.target, remoto-fs.target,
    systemd-networkd-wait-online.service y systemd-timesyncd.service. Para crear estos archivos, ahora necesita ejecutar el comando "systemctl preset-all".

Fuente: opennet.ru

[:]

Añadir un comentario