gerenciador de sistema systemd versão 242

[: ru]

Após dois meses de desenvolvimento apresentado liberação do gerenciador de sistema sistema 242. Entre as inovações podemos destacar o suporte para túneis L2TP, a capacidade de controlar o comportamento do systemd-logind nas reinicializações através de variáveis ​​​​de ambiente, suporte para partições de inicialização XBOOTLDR estendidas para montagem /boot, a capacidade de inicializar com uma partição raiz em overlayfs, bem como um grande número de novas configurações para diferentes tipos de unidades.

Grandes mudanças:

  • systemd-networkd fornece suporte para túneis L2TP;
  • sd-boot e bootctl fornecem suporte para partições XBOOTLDR (Extended Boot Loader) projetadas para serem montadas em /boot, além de partições ESP montadas em /efi ou /boot/efi. Kernels, configurações, imagens initrd e EFI agora podem ser inicializados a partir de partições ESP e XBOOTLDR. Essa mudança permite que você use o bootloader sd-boot em cenários mais conservadores, quando o próprio bootloader está localizado no ESP e os kernels carregados e os metadados associados são colocados em uma seção separada;
  • Adicionada a capacidade de inicializar com a opção “systemd.volatile=overlay” passada para o kernel, que permite colocar a partição raiz em overlayfs e organizar o trabalho sobre uma imagem somente leitura do diretório raiz com alterações gravadas em um diretório separado em tmpfs (as alterações nesta configuração são perdidas após uma reinicialização). Por analogia, systemd-nspawn adicionou a opção “--volatile=overlay” para usar funcionalidades semelhantes em contêineres;
  • systemd-nspawn adicionou a opção "--oci-bundle" para permitir o uso de pacotes de tempo de execução para fornecer lançamento isolado de contêineres que estejam em conformidade com a especificação Open Container Initiative (OCI). Para uso na linha de comando e unidades nspawn, é proposto suporte para diversas opções descritas na especificação OCI, por exemplo, as opções “--inacessível” e “Inacessível” podem ser usadas para excluir partes do sistema de arquivos, e o “ Opções --console” foram adicionadas para configurar fluxos de saída padrão e “-pipe”;
  • Adicionada a capacidade de controlar o comportamento do systemd-logind por meio de variáveis ​​de ambiente: $SYSTEMD_REBOOT_ TO_FIRMWARE_SETUP,
    $SYSTEMD_REBOOT_TO_BOOT_LOADER_MENU e
    $SYSTEMD_REBOOT_TO_BOOT_LOADER_ENTRY. Usando essas variáveis, você pode conectar seus próprios manipuladores de processo de reinicialização (/run/systemd/reboot-to-firmware-setup, /run/systemd/reboot-to-boot-loader-menu e
    /run/systemd/reboot-to-boot-loader-entry) ou desative-os completamente (se o valor estiver definido como false);

  • Adicionadas opções “-boot-load-menu=” e
    “—boot-loader-entry=”, permitindo que você selecione um item específico do menu de inicialização ou modo de inicialização após uma reinicialização;

  • Adicionado um novo comando de isolamento de sandbox “RestrictSUIDSGID=”, que usa seccomp para proibir a criação de arquivos com flags SUID/SGID;
  • Garantido que as restrições “NoNewPrivileges” e “RestrictSUIDSGID” são aplicadas por defeito em serviços com modo de geração de ID de utilizador dinâmico (“DynamicUser” ativado);
  • A configuração padrão MACAddressPolicy=persistent em arquivos .link foi alterada para abranger mais dispositivos. As interfaces de pontes de rede, túneis (tun, tap) e links agregados (bond) não se identificam exceto pelo nome da interface de rede, portanto esse nome agora é usado como base para vincular endereços MAC e IPv4. Além disso, foi adicionada a configuração “MACAddressPolicy=random”, que pode ser usada para vincular endereços MAC e IPv4 a dispositivos em ordem aleatória;
  • Os arquivos de unidade ".device" gerados por meio do systemd-fstab-generator não incluem mais as unidades ".mount" correspondentes como dependências na seção "Wants=". A simples conexão de um dispositivo não inicia mais automaticamente uma unidade para montagem, mas essas unidades ainda podem ser iniciadas por outros motivos, como como parte de local-fs.target ou como dependência de outras unidades que dependem de local-fs.target ;
  • Adicionado suporte para máscaras (“*”, etc.) aos comandos “networkctl list/status/lldp” para filtrar certos grupos de interfaces de rede por parte de seu nome;
  • A variável de ambiente $PIDFILE agora é definida usando o caminho absoluto configurado nos serviços através do parâmetro "PIDFile=;".
  • Os servidores Cloudflare públicos (1.1.1.1) foram adicionados ao número de servidores DNS de backup usados ​​se o DNS principal não estiver explicitamente definido. Para redefinir a lista de servidores DNS de backup, você pode usar a opção “-Ddns-servers=”;
  • Ao detectar a presença de um controlador de dispositivo USB, um novo manipulador usb-gadget.target é iniciado automaticamente (quando o sistema está rodando em um dispositivo periférico USB);
  • Para arquivos unitários, foi implementada a configuração “CPUQuotaPeriodSec=”, que determina o período de tempo relativo ao qual é medida a cota de tempo de CPU, definido através da configuração “CPUQuota=”;
  • Para arquivos unitários, foi implementada a configuração “ProtectHostname=”, que proíbe os serviços de alterar informações sobre o nome do host, mesmo que tenham as permissões apropriadas;
  • Para arquivos de unidade, foi implementada a configuração “NetworkNamespacePath=”, que permite vincular um namespace a serviços ou unidades de soquete especificando o caminho para o arquivo de namespace no pseudo-FS /proc;
  • Adicionada a capacidade de desabilitar a substituição de variáveis ​​de ambiente para processos iniciados usando a configuração “ExecStart=” adicionando um caractere “:” antes do comando de início;
  • Para temporizadores (unidades .timer) novos sinalizadores “OnClockChange=” e
    “OnTimezoneChange=”, com o qual você pode controlar a chamada da unidade quando a hora do sistema ou fuso horário muda;

  • Adicionadas novas configurações “ConditionMemory=” e “ConditionCPUs=”, que determinam as condições para chamar uma unidade dependendo do tamanho da memória e do número de núcleos da CPU (por exemplo, um serviço com uso intensivo de recursos pode ser iniciado apenas se a quantidade necessária de RAM está disponível);
  • Adicionada uma nova unidade time-set.target que aceita a hora do sistema definida localmente, sem usar reconciliação com servidores de horário externos usando a unidade time-sync.target. A nova unidade poderá ser utilizada por serviços que necessitem da precisão de relógios locais não sincronizados;
  • A opção “--show-transaction” foi adicionada ao “systemctl start” e comandos semelhantes, quando especificado, é exibido um resumo de todos os jobs adicionados à fila devido à operação solicitada;
  • systemd-networkd implementa a definição de um novo estado 'escravizado', usado em vez de 'degradado' ou 'portadora' para interfaces de rede que fazem parte de links agregados ou pontes de rede. Para interfaces primárias, em caso de problemas com um dos links compostos, foi adicionado o estado 'portadora degradada';
  • Adicionada opção “IgnoreCarrierLoss=” às unidades .network para salvar as configurações de rede em caso de perda de conexão;
  • Através da configuração “RequiredForOnline=” em unidades .network, agora você pode definir o estado de link mínimo aceitável necessário para transferir a interface de rede para “online” e acionar o manipulador systemd-networkd-wait-online;
  • Adicionada a opção “--any” ao systemd-networkd-wait-online para aguardar a prontidão de qualquer uma das interfaces de rede especificadas em vez de todas, bem como a opção “--operative-state=” para determinar o estado de o link indicando prontidão;
  • Adicionadas configurações “UseAutonomousPrefix=” e “UseOnLinkPrefix=” às unidades .network, que podem ser usadas para ignorar prefixos ao receber
    anúncio de um roteador IPv6 (RA, Router Advertisement);

  • Nas unidades .network, foram adicionadas as configurações “MulticastFlood=”, “NeighborSuppression=” e “Learning=” para alterar os parâmetros operacionais da ponte de rede, bem como a configuração “TripleSampling=” para alterar o modo TRIPLE-SAMPLING de interfaces virtuais CAN;
  • As configurações “PrivateKeyFile=” e “PresharedKeyFile=” foram adicionadas às unidades .netdev, com as quais você pode especificar chaves privadas e compartilhadas (PSK) para interfaces VPN WireGuard;
  • Adicionadas opções same-cpu-crypt e submit-from-crypt-cpus a /etc/crypttab, que controlam o comportamento do agendador ao migrar trabalhos relacionados à criptografia entre núcleos de CPU;
  • systemd-tmpfiles fornece bloqueio de processamento de arquivos antes de executar operações em diretórios com arquivos temporários, o que permite desabilitar o trabalho de limpeza de arquivos desatualizados durante certas ações (por exemplo, ao descompactar um arquivo tar em /tmp, arquivos muito antigos podem ser abertos que não podem ser excluídos antes do final da ação com eles);
  • O comando “systemd-analyze cat-config” fornece a capacidade de analisar uma configuração dividida em vários arquivos, por exemplo, predefinições de usuário e sistema, o conteúdo de tmpfiles.d e sysusers.d, regras do udev, etc.
  • Adicionada opção "--cursor-file=" ao "journalctl" para especificar um arquivo para carregar e salvar a posição do cursor;
  • Adicionada definição de hipervisor ACRN e subsistema WSL (subsistema Windows para Linux) ao systemd-detect-virt para ramificação subsequente usando o operador condicional “ConditionVirtualization”;
  • Durante a instalação do systemd (ao executar "ninja install"), a criação de links simbólicos para os arquivos systemd-networkd.service, systemd-networkd.socket,
    systemd-resolved.service, remote-cryptsetup.target, remote-fs.target,
    systemd-networkd-wait-online.service e systemd-timesyncd.service. Para criar esses arquivos, agora você precisa executar o comando “systemctl preset-all”.

Fonteopennet.ru

[: En]

Após dois meses de desenvolvimento apresentado liberação do gerenciador de sistema sistema 242. Entre as inovações podemos destacar o suporte para túneis L2TP, a capacidade de controlar o comportamento do systemd-logind nas reinicializações através de variáveis ​​​​de ambiente, suporte para partições de inicialização XBOOTLDR estendidas para montagem /boot, a capacidade de inicializar com uma partição raiz em overlayfs, bem como um grande número de novas configurações para diferentes tipos de unidades.

Grandes mudanças:

  • systemd-networkd fornece suporte para túneis L2TP;
  • sd-boot e bootctl fornecem suporte para partições XBOOTLDR (Extended Boot Loader) projetadas para serem montadas em /boot, além de partições ESP montadas em /efi ou /boot/efi. Kernels, configurações, imagens initrd e EFI agora podem ser inicializados a partir de partições ESP e XBOOTLDR. Essa mudança permite que você use o bootloader sd-boot em cenários mais conservadores, quando o próprio bootloader está localizado no ESP e os kernels carregados e os metadados associados são colocados em uma seção separada;
  • Adicionada a capacidade de inicializar com a opção “systemd.volatile=overlay” passada para o kernel, que permite colocar a partição raiz em overlayfs e organizar o trabalho sobre uma imagem somente leitura do diretório raiz com alterações gravadas em um diretório separado em tmpfs (as alterações nesta configuração são perdidas após uma reinicialização). Por analogia, systemd-nspawn adicionou a opção “--volatile=overlay” para usar funcionalidades semelhantes em contêineres;
  • systemd-nspawn adicionou a opção "--oci-bundle" para permitir o uso de pacotes de tempo de execução para fornecer lançamento isolado de contêineres que estejam em conformidade com a especificação Open Container Initiative (OCI). Para uso na linha de comando e unidades nspawn, é proposto suporte para diversas opções descritas na especificação OCI, por exemplo, as opções “--inacessível” e “Inacessível” podem ser usadas para excluir partes do sistema de arquivos, e o “ Opções --console” foram adicionadas para configurar fluxos de saída padrão e “-pipe”;
  • Adicionada a capacidade de controlar o comportamento do systemd-logind por meio de variáveis ​​de ambiente: $SYSTEMD_REBOOT_ TO_FIRMWARE_SETUP,
    $SYSTEMD_REBOOT_TO_BOOT_LOADER_MENU e
    $SYSTEMD_REBOOT_TO_BOOT_LOADER_ENTRY. Usando essas variáveis, você pode conectar seus próprios manipuladores de processo de reinicialização (/run/systemd/reboot-to-firmware-setup, /run/systemd/reboot-to-boot-loader-menu e
    /run/systemd/reboot-to-boot-loader-entry) ou desative-os completamente (se o valor estiver definido como false);

  • Adicionadas opções “-boot-load-menu=” e
    “—boot-loader-entry=”, permitindo que você selecione um item específico do menu de inicialização ou modo de inicialização após uma reinicialização;

  • Adicionado um novo comando de isolamento de sandbox “RestrictSUIDSGID=”, que usa seccomp para proibir a criação de arquivos com flags SUID/SGID;
  • Garantido que as restrições “NoNewPrivileges” e “RestrictSUIDSGID” são aplicadas por defeito em serviços com modo de geração de ID de utilizador dinâmico (“DynamicUser” ativado);
  • A configuração padrão MACAddressPolicy=persistent em arquivos .link foi alterada para abranger mais dispositivos. As interfaces de pontes de rede, túneis (tun, tap) e links agregados (bond) não se identificam exceto pelo nome da interface de rede, portanto esse nome agora é usado como base para vincular endereços MAC e IPv4. Além disso, foi adicionada a configuração “MACAddressPolicy=random”, que pode ser usada para vincular endereços MAC e IPv4 a dispositivos em ordem aleatória;
  • Os arquivos de unidade ".device" gerados por meio do systemd-fstab-generator não incluem mais as unidades ".mount" correspondentes como dependências na seção "Wants=". A simples conexão de um dispositivo não inicia mais automaticamente uma unidade para montagem, mas essas unidades ainda podem ser iniciadas por outros motivos, como como parte de local-fs.target ou como dependência de outras unidades que dependem de local-fs.target ;
  • Adicionado suporte para máscaras (“*”, etc.) aos comandos “networkctl list/status/lldp” para filtrar certos grupos de interfaces de rede por parte de seu nome;
  • A variável de ambiente $PIDFILE agora é definida usando o caminho absoluto configurado nos serviços através do parâmetro "PIDFile=;".
  • Os servidores Cloudflare públicos (1.1.1.1) foram adicionados ao número de servidores DNS de backup usados ​​se o DNS principal não estiver explicitamente definido. Para redefinir a lista de servidores DNS de backup, você pode usar a opção “-Ddns-servers=”;
  • Ao detectar a presença de um controlador de dispositivo USB, um novo manipulador usb-gadget.target é iniciado automaticamente (quando o sistema está rodando em um dispositivo periférico USB);
  • Para arquivos unitários, foi implementada a configuração “CPUQuotaPeriodSec=”, que determina o período de tempo relativo ao qual é medida a cota de tempo de CPU, definido através da configuração “CPUQuota=”;
  • Para arquivos unitários, foi implementada a configuração “ProtectHostname=”, que proíbe os serviços de alterar informações sobre o nome do host, mesmo que tenham as permissões apropriadas;
  • Para arquivos de unidade, foi implementada a configuração “NetworkNamespacePath=”, que permite vincular um namespace a serviços ou unidades de soquete especificando o caminho para o arquivo de namespace no pseudo-FS /proc;
  • Adicionada a capacidade de desabilitar a substituição de variáveis ​​de ambiente para processos iniciados usando a configuração “ExecStart=” adicionando um caractere “:” antes do comando de início;
  • Para temporizadores (unidades .timer) novos sinalizadores “OnClockChange=” e
    “OnTimezoneChange=”, com o qual você pode controlar a chamada da unidade quando a hora do sistema ou fuso horário muda;

  • Adicionadas novas configurações “ConditionMemory=” e “ConditionCPUs=”, que determinam as condições para chamar uma unidade dependendo do tamanho da memória e do número de núcleos da CPU (por exemplo, um serviço com uso intensivo de recursos pode ser iniciado apenas se a quantidade necessária de RAM está disponível);
  • Adicionada uma nova unidade time-set.target que aceita a hora do sistema definida localmente, sem usar reconciliação com servidores de horário externos usando a unidade time-sync.target. A nova unidade poderá ser utilizada por serviços que necessitem da precisão de relógios locais não sincronizados;
  • A opção “--show-transaction” foi adicionada ao “systemctl start” e comandos semelhantes, quando especificado, é exibido um resumo de todos os jobs adicionados à fila devido à operação solicitada;
  • systemd-networkd implementa a definição de um novo estado 'escravizado', usado em vez de 'degradado' ou 'portadora' para interfaces de rede que fazem parte de links agregados ou pontes de rede. Para interfaces primárias, em caso de problemas com um dos links compostos, foi adicionado o estado 'portadora degradada';
  • Adicionada opção “IgnoreCarrierLoss=” às unidades .network para salvar as configurações de rede em caso de perda de conexão;
  • Através da configuração “RequiredForOnline=” em unidades .network, agora você pode definir o estado de link mínimo aceitável necessário para transferir a interface de rede para “online” e acionar o manipulador systemd-networkd-wait-online;
  • Adicionada a opção “--any” ao systemd-networkd-wait-online para aguardar a prontidão de qualquer uma das interfaces de rede especificadas em vez de todas, bem como a opção “--operative-state=” para determinar o estado de o link indicando prontidão;
  • Adicionadas configurações “UseAutonomousPrefix=” e “UseOnLinkPrefix=” às unidades .network, que podem ser usadas para ignorar prefixos ao receber
    anúncio de um roteador IPv6 (RA, Router Advertisement);

  • Nas unidades .network, foram adicionadas as configurações “MulticastFlood=”, “NeighborSuppression=” e “Learning=” para alterar os parâmetros operacionais da ponte de rede, bem como a configuração “TripleSampling=” para alterar o modo TRIPLE-SAMPLING de interfaces virtuais CAN;
  • As configurações “PrivateKeyFile=” e “PresharedKeyFile=” foram adicionadas às unidades .netdev, com as quais você pode especificar chaves privadas e compartilhadas (PSK) para interfaces VPN WireGuard;
  • Adicionadas opções same-cpu-crypt e submit-from-crypt-cpus a /etc/crypttab, que controlam o comportamento do agendador ao migrar trabalhos relacionados à criptografia entre núcleos de CPU;
  • systemd-tmpfiles fornece bloqueio de processamento de arquivos antes de executar operações em diretórios com arquivos temporários, o que permite desabilitar o trabalho de limpeza de arquivos desatualizados durante certas ações (por exemplo, ao descompactar um arquivo tar em /tmp, arquivos muito antigos podem ser abertos que não podem ser excluídos antes do final da ação com eles);
  • O comando “systemd-analyze cat-config” fornece a capacidade de analisar uma configuração dividida em vários arquivos, por exemplo, predefinições de usuário e sistema, o conteúdo de tmpfiles.d e sysusers.d, regras do udev, etc.
  • Adicionada opção "--cursor-file=" ao "journalctl" para especificar um arquivo para carregar e salvar a posição do cursor;
  • Adicionada definição de hipervisor ACRN e subsistema WSL (subsistema Windows para Linux) ao systemd-detect-virt para ramificação subsequente usando o operador condicional “ConditionVirtualization”;
  • Durante a instalação do systemd (ao executar "ninja install"), a criação de links simbólicos para os arquivos systemd-networkd.service, systemd-networkd.socket,
    systemd-resolved.service, remote-cryptsetup.target, remote-fs.target,
    systemd-networkd-wait-online.service e systemd-timesyncd.service. Para criar esses arquivos, agora você precisa executar o comando “systemctl preset-all”.

Fonte: opennet.ru

[:]

Adicionar um comentário