Há alguns dias, compartilhamos aqui no blog a notícia do lançamento da versão 256 do systemd , versão que introduziu diversas mudanças e novos recursos, entre eles o utilitário run0, que podemos considerar o principal destaque desta versão.
O motivo de mencionar o systemd 256 é que foi anunciado o lançamento da versão corretiva, systemd 256.1 . Esta versão foi lançada para solucionar um problema crítico que surgiu na versão 256.
Este problema afetava a exclusão incorreta do conteúdo da partição /home ao executar o comando systemd-tmpfiles --purge . Originalmente, essa opção tinha como objetivo excluir arquivos e diretórios criados por meio de configurações em tmpfiles.d, mas o comportamento não correspondia à documentação e às expectativas do usuário.
O problema específico era que o nome "tmpfiles" no utilitário era enganoso, já que a opção `--purge` não apenas excluía arquivos temporários, mas também afetava diretórios e arquivos criados automaticamente por meio de configurações em `tmpfiles.d`. Isso incluía a criação automática de diretórios de dados, como o diretório inicial em `/home`.
Por exemplo, o arquivo /usr/lib/tmpfiles.d/home.conf era responsável por criar a estrutura de diretórios em /home, e o uso inadvertido de systemd-tmpfiles --purge removeu esses diretórios e seus conteúdos, em vez de apenas limpar os arquivos temporários como esperado.
É por isso que a versão corretiva do systemd 256.1 foi lançada com o objetivo de solucionar essas inconsistências e problemas relatados pelos usuários e também para alinhar adequadamente a função –purge com sua finalidade original, garantindo que ela exclua apenas arquivos temporários e não afete a estrutura de diretórios criado por meio de configurações em tmpfiles.d.
Vale ressaltar que o incidente com systemd-tmpfiles e exclusão incorreta de diretórios na partição /home Foi uma situação infeliz que gerou debate e correções significativas na implementação do systemd.
Muitas mensagens de alerta começaram a aparecer, incluindo rotas em
/home(não foi possível restaurar os tempos de modificação...?). O que uma ferramenta de limpeza temporária faz no meu diretório inicial? Isso não é bom. Meu coração começou a bater mais rápido e pressionei Ctrl-C o mais rápido que pude.Acontece que boa parte do meu diretório pessoal foi excluída. Felizmente, parece que tudo começou a partir dos arquivos de configuração e não dos dados reais, embora ainda não tenha certeza se perdi algo importante. Desliguei a máquina para recuperar os dados mais tarde
extundelete(aliás, não funcionou, trava instantaneamente por algum motivo; tenho backups, mas estão um pouco desatualizados, estou enchendo os drives muito rápido).
A resposta inicial de Luca Boccassi, desenvolvedor do systemd da Microsoft, refletiu a frustração e o espanto dos usuários afetados por essa exclusão não intencional. A implementação de um recurso que, segundo a documentação, deveria excluir todos os arquivos e diretórios indiscriminadamente, mas que na prática afetou estruturas essenciais do sistema, foi questionada.
Após extensas discussões e revisões, foi reconhecido que o comportamento de systemd-tmpfiles --purge estava incorreto e medidas corretivas foram tomadas.
Inicialmente considerou-se eliminar completamente a opção --purge, mas optamos por restringir seu escopo para que afetasse apenas arquivos e diretórios diretamente associados a uma configuração específica em tmpfiles.d/. Essa modificação garante que o comando exclua apenas o que pretende excluir, evitando assim efeitos colaterais indesejados em outras áreas do sistema de arquivos.
O que tenho problema é com a documentação. Explica o que as opções fazem, tecnicamente falando (bem, acho que sim, não sei muito sobre a arquitetura aqui), mas não explica por que elas fazem o que fazem. Quando alguém apenas navega pela documentação, todas as três opções parecem fazer a mesma coisa: limpar arquivos temporários, embora
--purgeParece "mais completo", pois menciona que exclui todos os arquivos (incluindo dados do usuário).
Além disso, Manual do usuário systemd-tmpfiles atualizado para fornecer uma descrição mais precisa da opção --purge e alertar claramente sobre as possíveis consequências do seu uso incorreto.
Por fim, recomendamos que você realize as atualizações necessárias para evitar que a situação se repita. Caso tenha interesse em saber mais , acesse o link a seguir.