Systemd System Manager versión 249

Despois de tres meses de desenvolvemento, preséntase a versión do xestor de sistema systemd 249. A nova versión ofrece a posibilidade de definir usuarios/grupos en formato JSON, estabiliza o protocolo Journal, simplifica a organización da carga de particións de disco sucesivas, engade a capacidade de vincular programas BPF a servizos e implementar a asignación de identificadores de usuarios en particións montadas, ofrécese unha gran parte de novas configuracións de rede e oportunidades para lanzar contedores.

Principais cambios:

  • O protocolo Journal está documentado e pódese usar en clientes en lugar do protocolo syslog para a entrega local de rexistros de rexistro. O protocolo Journal está implementado desde hai moito tempo e xa se usa nalgunhas bibliotecas cliente, con todo, o seu soporte oficial acaba de ser anunciado.
  • Userdb e nss-systemd ofrecen soporte para ler definicións de usuarios adicionais situadas nos directorios /etc/userdb/, /run/userdb/, /run/host/userdb/ e /usr/lib/userdb/, especificados en formato JSON. Nótase que esta función proporcionará un mecanismo adicional para crear usuarios no sistema, proporcionándolle unha integración total con NSS e /etc/shadow. A compatibilidade con JSON para as entradas de usuarios/grupos tamén permitirá anexar varias opcións de xestión de recursos e outras configuracións aos usuarios que recoñecen pam_systemd e systemd-logind.
  • nss-systemd proporciona síntese de entradas de usuarios/grupos en /etc/shadow usando contrasinais hash de systemd-homed.
  • Implementouse un mecanismo que simplifica a organización das actualizacións mediante particións de disco que se substitúen entre si (unha partición está activa e a segunda é de reserva: a actualización cópiase na partición de reserva, despois de que se activa). Se hai dúas particións root ou /usr na imaxe de disco e udev non detectou a presenza do parámetro 'root=' ou está a procesar imaxes de disco especificadas a través da opción "--image" en systemd-nspawn e systemd -dissect, a partición de arranque pódese calcular comparando as etiquetas GPT (supoñendo que a etiqueta GPT menciona o número de versión do contido da partición e systemd seleccionará a partición coas modificacións máis recentes).
  • Engadiuse unha configuración de BPFProgram aos ficheiros de servizo, coa que pode organizar a carga dos programas BPF no núcleo e xestionalos coa vinculación a servizos de sistema específicos.
  • Systemd-fstab-generator e systemd-repart engaden a posibilidade de arrincar desde discos que só teñen unha partición /usr e ningunha partición raíz (a partición raíz será xerada por systemd-repart durante o primeiro arranque).
  • En systemd-nspawn, a opción "--private-user-chown" foi substituída pola opción máis xenérica "--private-user-ownership", que pode aceptar valores "chown" como o equivalente de "-- private-user-chown", "off" para desactivar a configuración antiga, "map" para asignar ID de usuario en sistemas de ficheiros montados e "auto" para seleccionar "map" se a funcionalidade requirida está presente no núcleo (5.12+) ou retrocede. a unha chamada recursiva a "chown" doutro xeito. Usando a asignación, pode mapear os ficheiros dun usuario nunha partición estranxeira montada a outro usuario do sistema actual, facilitando o intercambio de ficheiros entre diferentes usuarios. No mecanismo de directorio home portátil systemd-homed, a asignación permitirá aos usuarios mover os seus directorios de inicio a medios externos e utilizalos en diferentes ordenadores que non teñan o mesmo deseño de ID de usuario.
  • En systemd-nspawn, a opción "--private-user" agora pode usar o valor "identity" para reflectir directamente os ID de usuario ao configurar un espazo de nomes de usuario, é dicir. O UID 0 e UID 1 do contedor reflectiranse no UID 0 e UID 1 no lado do host, para reducir os vectores de ataque (o contedor só recibirá capacidades de proceso no seu espazo de nomes).
  • Engadiuse a opción "--bind-user" a systemd-nspawn para reenviar unha conta de usuario existente no ambiente de host ao contedor (o directorio de inicio está montado no contedor, engádese unha entrada de usuario/grupo e mapeo de UID). realízase entre o contedor e o ambiente anfitrión).
  • Engadido soporte para solicitar contrasinais definidos para systemd-ask-password e systemd-sysusers (passwd.hashed-password. e contrasinal.texto sin formato. ) usando o mecanismo introducido en systemd 247 para transferir datos confidenciais de forma segura usando ficheiros intermedios nun directorio separado. Por defecto, as credenciais son aceptadas do proceso con PID1, que as recibe, por exemplo, do xestor de xestión de contedores, que permite configurar o contrasinal do usuario no primeiro arranque.
  • systemd-firstboot engade soporte para usar o mecanismo de transferencia segura de datos sensibles para consultar varios parámetros do sistema, que se poden usar para inicializar a configuración do sistema cando se inicia por primeira vez unha imaxe de contedor que non ten a configuración necesaria no directorio /etc.
  • O proceso PID 1 garante que tanto o nome como a descrición da unidade se mostren durante o arranque. Pode cambiar a saída mediante o parámetro "StatusUnitFormat=combined" en system.conf ou a opción da liña de comandos do núcleo "systemd.status-unit-format=combined"
  • A opción "--image" engadiuse ás utilidades systemd-machine-id-setup e systemd-repart para transferir un ficheiro cun ID de máquina a unha imaxe de disco ou para aumentar o tamaño dunha imaxe de disco.
  • Engadiuse un parámetro MakeDirectories ao ficheiro de configuración da partición empregado pola utilidade systemd-repart, que se pode usar para crear directorios arbitrarios no sistema de ficheiros creado antes de reflectirse na táboa de particións (por exemplo, para crear directorios para puntos de montaxe en a partición raíz para que poida montar inmediatamente a partición en modo de só lectura). Para controlar as bandeiras GPT nas seccións creadas, engadíronse os correspondentes parámetros Flags, ReadOnly e NoAuto. O parámetro CopyBlocks ten un valor de "auto" para seleccionar automaticamente a partición de arranque actual como fonte ao copiar bloques (por exemplo, cando precisa transferir a súa propia partición raíz a novos medios).
  • GPT implementa a marca "grow-file-system", que é semellante á opción de montaxe x-systemd.growfs e proporciona unha expansión automática do tamaño FS ata os límites do dispositivo de bloque se o tamaño FS é menor que a partición. A marca é aplicable aos sistemas de ficheiros Ext3, XFS e Btrfs e pódese aplicar ás particións detectadas automaticamente. A marca está habilitada de forma predeterminada para as particións escribibles creadas automaticamente mediante systemd-repart. Engadiuse a opción GrowFileSystem para configurar a marca en systemd-repart.
  • O ficheiro /etc/os-release ofrece soporte para novas variables IMAGE_VERSION e IMAGE_ID para determinar a versión e o ID das imaxes actualizadas atómicamente. Os especificadores %M e %A proponse para substituír os valores especificados en varios comandos.
  • Engadiuse o parámetro "--extension" á utilidade portablectl para activar imaxes de extensión do sistema portátil (por exemplo, a través delas podes distribuír imaxes con servizos adicionais integrados na partición raíz).
  • A utilidade systemd-coredump proporciona a extracción de información de ID de compilación de ELF cando se xera un volcado de núcleo dun proceso, o que pode ser útil para determinar a que paquete pertence un proceso que falla se se construíu información sobre o nome e a versión dos paquetes deb ou rpm. nos ficheiros ELF.
  • Engadiuse a udev unha nova base de hardware para dispositivos FireWire (IEEE 1394).
  • En udev, engadíronse tres cambios ao esquema de selección de nomes da interface de rede "net_id" que violan a compatibilidade con versións anteriores: os caracteres incorrectos dos nomes das interfaces substitúense agora por "_"; Os nomes das ranuras PCI hotplug para os sistemas s390 son procesados ​​en forma hexadecimal; Permítese o uso de ata 65535 dispositivos PCI integrados (antes bloqueáronse os números superiores a 16383).
  • systemd-resolved engade o dominio "home.arpa" á lista NTA (Áncoras de confianza negativas), que se recomenda para redes domésticas locais, pero non se usa en DNSSEC.
  • O parámetro CPUAffinity proporciona análise dos especificadores "%".
  • Engadiuse un parámetro ManageForeignRoutingPolicyRules aos ficheiros .network, que se pode usar para excluír systemd-networkd do procesamento de políticas de enrutamento de terceiros.
  • Engadiuse o parámetro RequiredFamilyForOnline aos ficheiros ".network" para determinar a presenza dun enderezo IPv4 ou IPv6 como un sinal de que a interface de rede está no estado "en liña". Networkctl ofrece unha visualización do estado "en liña" para cada ligazón.
  • Engadiuse o parámetro OutgoingInterface aos ficheiros .network para definir interfaces de saída ao configurar pontes de rede.
  • Engadiuse un parámetro Grupo aos ficheiros ".network", o que lle permite configurar un grupo de rutas múltiples para as entradas da sección "[NextHop]".
  • Engadíronse as opcións "-4" e "-6" a systemd-network-wait-online para limitar as esperas de conexión só a IPv4 ou IPv6.
  • Engadiuse un parámetro RelayTarget á configuración do servidor DHCP, que cambia o servidor ao modo DHCP Ralay. Para a configuración adicional do relé DHCP, ofrécense as opcións RelayAgentCircuitId e RelayAgentRemoteId.
  • Engadiuse o parámetro ServerAddress ao servidor DHCP, o que lle permite establecer explícitamente o enderezo IP do servidor (se non, o enderezo se selecciona automaticamente).
  • O servidor DHCP implementa a sección [DHCPServerStaticLease], que permite configurar enlaces de enderezos estáticos (arrendamentos DHCP), especificando enlaces IP fixos a enderezos MAC e viceversa.
  • A configuración RestrictAddressFamilies admite o valor "none", o que significa que o servizo non terá acceso a sockets de ningunha familia de enderezos.
  • Nos ficheiros ".network" das seccións [Enderezo], [DHCPv6PrefixDelegation] e [IPv6Prefix], implícase o soporte para a configuración RouteMetric, que lle permite especificar a métrica para o prefixo de ruta creado para o enderezo especificado.
  • nss-myhostname e systemd-resolved proporcionan síntese de rexistros DNS con enderezos para hosts cun nome especial "_outbound", para o que sempre se emite unha IP local, escollida de acordo coas rutas predeterminadas utilizadas para as conexións de saída.
  • Nos ficheiros .network, na sección "[DHCPv4]", engadiuse unha configuración activa predeterminada de RoutesToNTP, que require engadir unha ruta separada a través da interface de rede actual para acceder ao enderezo do servidor NTP obtido para esta interface mediante DHCP (semellante ao DNS). , a configuración permítelle garantir que o tráfico ao servidor NTP se encamiñará a través da interface a través da cal se recibiu este enderezo).
  • Engadiuse a configuración SocketBindAllow e SocketBindDeny para controlar o acceso aos sockets vinculados ao servizo actual.
  • Para os ficheiros de unidades, implementouse unha configuración condicional chamada ConditionFirmware, que permite crear comprobacións que avalían as funcións do firmware, como o traballo en sistemas UEFI e device.tree, así como comprobar a compatibilidade con determinadas capacidades da árbore de dispositivos.
  • Implementouse a opción ConditionOSRelease para comprobar os campos do ficheiro /etc/os-release. Ao definir as condicións para comprobar os valores dos campos, os operadores “=”, “!=”, “<“, “<=”, “>=”, “>” son aceptables.
  • Na utilidade hostnamectl, comandos como "get-xyz" e "set-xyz" son liberados dos prefixos "get" e "set", por exemplo, en lugar de "hostnamectl get-hostname" e "hostnamectl "set-hostname" pode usar o comando "hostnamectl hostname" , a asignación dun valor no que se determina especificando un argumento adicional ("hostnamectl hostname value"). Mantívose o soporte para comandos máis antigos para garantir a compatibilidade.
  • A utilidade systemd-detect-virt e a configuración ConditionVirtualization garanten a identificación correcta dos ambientes Amazon EC2.
  • A configuración de LogLevelMax nos ficheiros de unidades agora aplícase non só ás mensaxes de rexistro xeradas polo servizo, senón tamén ás mensaxes de proceso PID 1 que mencionan o servizo.
  • Proporcionou a posibilidade de incluír datos SBAT (UEFI Secure Boot Advanced Targeting) nos ficheiros EFI PE de arranque systemd.
  • /etc/crypttab implementa novas opcións "headless" e "password-echo". (non mostrar nada, mostrar carácter por carácter e mostrar asteriscos). En systemd-ask-password, engadiuse a opción "--echo" para fins similares.
  • systemd-cryptenroll, systemd-cryptsetup e systemd-homed ampliaron a compatibilidade para desbloquear particións LUKS2 cifradas usando tokens FIDO2. Engadíronse novas opcións "--fido2-with-user-presence", "--fido2-with-user-verification" e "-fido2-with-client-pin" para controlar a verificación da presenza física do usuario, a verificación e a necesidade de ingresar un código PIN.
  • Engadíronse opcións “--user”, “--system”, “--merge” e “--file” a systemd-journal-gatewayd, de xeito similar ás opcións journalctl.
  • Ademais das dependencias directas entre as unidades especificadas a través dos parámetros OnFailure e Slice, engadiuse soporte para as dependencias inversas implícitas OnFailureOf e SliceOf, que poden ser útiles, por exemplo, para determinar todas as unidades incluídas no slice.
  • Engadíronse novos tipos de dependencias entre as unidades: OnSuccess e OnSuccessOf (o contrario de OnFailure, chamado ao finalizar correctamente); PropagatesStopTo e StopPropagatedFrom (permítenche propagar o evento de parada dunha unidade a outra unidade); Upholds e UpheldBy (alternativa a Restart).
  • A utilidade systemd-ask-password agora ten unha opción "--emoji" para controlar a aparición do símbolo do cadeado (🔐) na liña de entrada do contrasinal.
  • Engadiuse documentación sobre a estrutura da árbore de orixe de systemd.
  • Para as unidades, engadiuse unha propiedade MemoryAvailable, que mostra a cantidade de memoria que lle queda á unidade antes de alcanzar o límite establecido mediante os parámetros MemoryMax, MemoryHigh ou MemoryAvailable.

Fonte: opennet.ru

Engadir un comentario