gerenciador de sistema systemd versão 249

Após três meses de desenvolvimento, é apresentado o lançamento do gerenciador de sistema systemd 249. O novo lançamento oferece a capacidade de definir usuários/grupos no formato JSON, estabiliza o protocolo Journal, simplifica a organização do carregamento de sucessivas partições de disco, adiciona a capacidade de vincular programas BPF a serviços e implementar mapeamento de identificadores de usuários em partições montadas, uma grande parte de novas configurações de rede e oportunidades para lançamento de contêineres são oferecidas.

Grandes mudanças:

  • O protocolo Journal está documentado e pode ser usado em clientes no lugar do protocolo syslog para entrega local de registros de log. O protocolo Journal está implementado há muito tempo e já é utilizado em algumas bibliotecas clientes, porém seu suporte oficial acaba de ser anunciado.
  • Userdb e nss-systemd fornecem suporte para leitura de definições de usuário adicionais localizadas nos diretórios /etc/userdb/, /run/userdb/, /run/host/userdb/ e /usr/lib/userdb/, especificados no formato JSON. Ressalta-se que este recurso fornecerá um mecanismo adicional para criação de usuários no sistema, proporcionando-lhe total integração com NSS e /etc/shadow. O suporte JSON para entradas de usuário/grupo também permitirá que vários gerenciamentos de recursos e outras configurações sejam anexados a usuários que pam_systemd e systemd-logind reconhecem.
  • nss-systemd fornece síntese de entradas de usuário/grupo em /etc/shadow usando senhas com hash do systemd-homed.
  • Foi implementado um mecanismo que simplifica a organização das atualizações usando partições de disco que se substituem (uma partição está ativa e a segunda é sobressalente - a atualização é copiada para a partição sobressalente, após a qual se torna ativa). Se houver duas partições root ou /usr na imagem do disco e o udev não tiver detectado a presença do parâmetro 'root=' ou estiver processando imagens de disco especificadas através da opção "--image" no systemd-nspawn e systemd -dissect utilitários, a partição de inicialização pode ser calculada comparando os rótulos GPT (assumindo que o rótulo GPT mencione o número da versão do conteúdo da partição e o systemd selecionará a partição com as alterações mais recentes).
  • Uma configuração BPFProgram foi adicionada aos arquivos de serviço, com a qual você pode organizar o carregamento de programas BPF no kernel e gerenciá-los com ligação a serviços específicos do systemd.
  • Systemd-fstab-generator e systemd-repart adicionam a capacidade de inicializar a partir de discos que possuem apenas uma partição /usr e nenhuma partição raiz (a partição raiz será gerada pelo systemd-repart durante a primeira inicialização).
  • No systemd-nspawn, a opção "--private-user-chown" foi substituída pela opção mais genérica "--private-user-ownership", que pode aceitar valores "chown" como equivalentes a "-- private-user-chown", "off" para desabilitar a configuração antiga, "map" para mapear IDs de usuários em sistemas de arquivos montados e "auto" para selecionar "map" se a funcionalidade necessária estiver presente no kernel (5.12+) ou fall back para uma chamada recursiva para "chown" caso contrário. Usando o mapeamento, você pode mapear os arquivos de um usuário em uma partição externa montada para outro usuário no sistema atual, facilitando o compartilhamento de arquivos entre diferentes usuários. No mecanismo de diretório inicial portátil systemd-homed, o mapeamento permitirá que os usuários movam seus diretórios iniciais para mídia externa e os usem em computadores diferentes que não possuem o mesmo layout de ID de usuário.
  • No systemd-nspawn, a opção "--private-user" agora pode usar o valor "identity" para refletir diretamente os IDs dos usuários ao configurar um namespace de usuário, ou seja, UID 0 e UID 1 no contêiner serão refletidos em UID 0 e UID 1 no lado do host, para reduzir vetores de ataque (o contêiner receberá apenas recursos de processo em seu namespace).
  • A opção “--bind-user” foi adicionada ao systemd-nspawn para encaminhar uma conta de usuário existente no ambiente host para o contêiner (o diretório inicial é montado no contêiner, uma entrada de usuário/grupo é adicionada e o mapeamento UID é executado entre o contêiner e o ambiente host).
  • Adicionado suporte para solicitar senhas definidas para systemd-ask-password e systemd-sysusers (passwd.hashed-password. e passwd.plaintext-senha. ) usando o mecanismo introduzido no systemd 247 para transferir dados confidenciais com segurança usando arquivos intermediários em um diretório separado. Por padrão, as credenciais são aceitas do processo com PID1, que as recebe, por exemplo, do gerenciador de gerenciamento de contêineres, que permite configurar a senha do usuário na primeira inicialização.
  • systemd-firstboot adiciona suporte para usar o mecanismo de transferência segura de dados confidenciais para consultar vários parâmetros do sistema, que podem ser usados ​​para inicializar as configurações do sistema ao inicializar pela primeira vez uma imagem de contêiner que não possui as configurações necessárias no diretório /etc.
  • O processo PID 1 garante que o nome e a descrição da unidade sejam exibidos durante a inicialização. Você pode alterar a saída através do parâmetro “StatusUnitFormat=combined” em system.conf ou da opção de linha de comando do kernel “systemd.status-unit-format=combined”
  • A opção "--image" foi adicionada aos utilitários systemd-machine-id-setup e systemd-repart para transferir um arquivo com um ID de máquina para uma imagem de disco ou para aumentar o tamanho de uma imagem de disco.
  • Um parâmetro MakeDirectories foi adicionado ao arquivo de configuração de partição usado pelo utilitário systemd-repart, que pode ser usado para criar diretórios arbitrários no sistema de arquivos criado antes de ser refletido na tabela de partição (por exemplo, para criar diretórios para pontos de montagem em a partição raiz para que você possa montá-la imediatamente no modo somente leitura). Para controlar sinalizadores GPT nas seções criadas, os parâmetros Flags, ReadOnly e NoAuto correspondentes foram adicionados. O parâmetro CopyBlocks tem um valor “auto” para selecionar automaticamente a partição de inicialização atual como fonte ao copiar blocos (por exemplo, quando você precisa transferir sua própria partição raiz para uma nova mídia).
  • GPT implementa o sinalizador “grow-file-system”, que é semelhante à opção de montagem x-systemd.growfs e fornece expansão automática do tamanho do FS para os limites do dispositivo de bloco se o tamanho do FS for menor que a partição. O sinalizador é aplicável aos sistemas de arquivos Ext3, XFS e Btrfs e pode ser aplicado a partições detectadas automaticamente. O sinalizador é habilitado por padrão para partições graváveis ​​criadas automaticamente via systemd-repart. A opção GrowFileSystem foi adicionada para configurar o sinalizador no systemd-repart.
  • O arquivo /etc/os-release fornece suporte para novas variáveis ​​IMAGE_VERSION e IMAGE_ID para determinar a versão e o ID de imagens atualizadas atomicamente. Os especificadores %M e %A são propostos para substituir valores especificados em vários comandos.
  • O parâmetro “--extension” foi adicionado ao utilitário portablectl para ativar imagens de extensão de sistema portátil (por exemplo, através delas você pode distribuir imagens com serviços adicionais integrados na partição raiz).
  • O utilitário systemd-coredump fornece a extração de informações de ID de compilação ELF ao gerar um core dump de um processo, o que pode ser útil para determinar a qual pacote um processo com falha pertence se informações sobre o nome e a versão dos pacotes deb ou rpm foram construídas nos arquivos ELF.
  • Uma nova base de hardware para dispositivos FireWire (IEEE 1394) foi adicionada ao udev.
  • No udev, três alterações foram adicionadas ao esquema de seleção de nome de interface de rede “net_id” que violam a compatibilidade com versões anteriores: caracteres incorretos em nomes de interface agora são substituídos por “_”; Os nomes dos slots PCI hotplug para sistemas s390 são processados ​​em formato hexadecimal; É permitido o uso de até 65535 dispositivos PCI integrados (anteriormente números acima de 16383 eram bloqueados).
  • systemd-resolved adiciona o domínio “home.arpa” à lista NTA (Negative Trust Anchors), que é recomendado para redes domésticas locais, mas não usado em DNSSEC.
  • O parâmetro CPUAffinity fornece análise dos especificadores “%”.
  • Um parâmetro ManageForeignRoutingPolicyRules foi adicionado aos arquivos .network, que pode ser usado para excluir systemd-networkd do processamento de políticas de roteamento de terceiros.
  • O parâmetro RequiredFamilyForOnline foi adicionado aos arquivos “.network” para determinar a presença de um endereço IPv4 ou IPv6 como um sinal de que a interface de rede está no estado “online”. Networkctl fornece uma exibição do status “online” para cada link.
  • Adicionado parâmetro OutgoingInterface aos arquivos .network para definir interfaces de saída ao configurar pontes de rede.
  • Um parâmetro Group foi adicionado aos arquivos “.network”, permitindo configurar um grupo Multipath para entradas na seção “[NextHop]”.
  • Adicionadas opções "-4" e "-6" a systemd-network-wait-online para limitar as esperas de conexão apenas para IPv4 ou IPv6.
  • Um parâmetro RelayTarget foi adicionado às configurações do servidor DHCP, que alterna o servidor para o modo DHCP Ralay. Para configuração adicional da retransmissão DHCP, as opções RelayAgentCircuitId e RelayAgentRemoteId são oferecidas.
  • O parâmetro ServerAddress foi adicionado ao servidor DHCP, permitindo definir explicitamente o endereço IP do servidor (caso contrário, o endereço será selecionado automaticamente).
  • O servidor DHCP implementa a seção [DHCPServerStaticLease], que permite configurar ligações de endereços estáticos (locações de DHCP), especificando ligações de IP fixas para endereços MAC e vice-versa.
  • A configuração RestrictAddressFamilies suporta o valor “none”, o que significa que o serviço não terá acesso a soquetes de nenhuma família de endereços.
  • Nos arquivos “.network” nas seções [Address], [DHCPv6PrefixDelegation] e [IPv6Prefix], é implementado o suporte para a configuração RouteMetric, que permite especificar a métrica para o prefixo de rota criado para o endereço especificado.
  • nss-myhostname e systemd-resolved fornecem síntese de registros DNS com endereços para hosts com nome especial “_outbound”, para os quais é sempre emitido um IP local, escolhido de acordo com as rotas padrão utilizadas para conexões de saída.
  • Nos arquivos .network, na seção “[DHCPv4]”, uma configuração ativa padrão RoutesToNTP foi adicionada, o que requer a adição de uma rota separada através da interface de rede atual para acessar o endereço do servidor NTP obtido para esta interface usando DHCP (semelhante ao DNS , a configuração permite garantir que o tráfego para o servidor NTP será roteado através da interface através da qual este endereço foi recebido).
  • Adicionadas configurações de SocketBindAllow e SocketBindDeny para controlar o acesso a soquetes vinculados ao serviço atual.
  • Para arquivos unitários, foi implementada uma configuração condicional chamada ConditionFirmware, que permite criar verificações que avaliam funções de firmware, como trabalho em sistemas UEFI e device.tree, bem como verificar a compatibilidade com determinados recursos da árvore de dispositivos.
  • Implementada a opção ConditionOSRelease para verificar campos no arquivo /etc/os-release. Ao definir condições para verificação de valores de campos, os operadores “=”, “!=”, “<“, “<=”, “>=”, “>” são aceitáveis.
  • No utilitário hostnamectl, comandos como “get-xyz” e “set-xyz” são liberados dos prefixos “get” e “set”, por exemplo, em vez de “hostnamectl get-hostname” e “hostnamectl “set-hostname” você pode usar o comando “hostnamectl hostname” ”, cuja atribuição de um valor é determinada pela especificação de um argumento adicional (“hostnamectl hostname value”). O suporte para comandos mais antigos foi mantido para garantir a compatibilidade.
  • O utilitário systemd-detect-virt e a configuração ConditionVirtualization garantem a identificação correta dos ambientes Amazon EC2.
  • A configuração LogLevelMax em arquivos de unidade agora se aplica não apenas às mensagens de log geradas pelo serviço, mas também às mensagens do processo PID 1 que mencionam o serviço.
  • Forneceu a capacidade de incluir dados SBAT (UEFI Secure Boot Advanced Targeting) em arquivos EFI PE de inicialização do sistema.
  • /etc/crypttab implementa novas opções “headless” e “password-echo” - a primeira permite pular todas as operações associadas à solicitação interativa de senhas e PINs do usuário, e a segunda permite configurar o método para exibir a entrada de senha (não mostre nada, mostre caractere por caractere e exiba asteriscos). A opção “--echo” foi adicionada ao systemd-ask-password para fins semelhantes.
  • systemd-cryptenroll, systemd-cryptsetup e systemd-homed expandiram o suporte para desbloquear partições LUKS2 criptografadas usando tokens FIDO2. Adicionadas novas opções “--fido2-with-user-presence”, “--fido2-with-user-verification” e “-fido2-with-client-pin” para controlar a verificação da presença física do usuário, verificação e a necessidade de entrar um código PIN.
  • Adicionadas opções “--user”, “--system”, “--merge” e “--file” ao systemd-journal-gatewayd, semelhantes às opções do journalctl.
  • Além das dependências diretas entre unidades especificadas através dos parâmetros OnFailure e Slice, foi adicionado suporte para dependências inversas implícitas OnFailureOf e SliceOf, que podem ser úteis, por exemplo, para determinar todas as unidades incluídas no slice.
  • Adicionados novos tipos de dependências entre unidades: OnSuccess e OnSuccessOf (o oposto de OnFailure, chamado após a conclusão bem-sucedida); PropagatesStopTo e StopPropagatedFrom (permitem propagar o evento stop de uma unidade para outra unidade); Upholds e UpheldBy (alternativa para Reiniciar).
  • O utilitário systemd-ask-password agora tem uma opção “--emoji” para controlar a aparência do símbolo de cadeado (🔐) na linha de entrada de senha.
  • Adicionada documentação sobre a estrutura da árvore de origem do systemd.
  • Para unidades, foi adicionada uma propriedade MemoryAvailable, mostrando quanta memória resta na unidade antes de atingir o limite definido através dos parâmetros MemoryMax, MemoryHigh ou MemoryAvailable.

Fonte: opennet.ru

Adicionar um comentário