Congelando um sistema não OSTree (experimento)

Nota: O tutorial a seguir é experimental (ou seja, está em um estado anterior a fase 4 dos estudos referentes a sua aplicação), prossiga com cuidado

Não sei se vcs conhecem (provavelmente conhecem) mas existem vários sistemas operacionais que são congelados, ou seja, o usuário pode criar seus arquivos, suas pastas… mas não pode mexer com o sistema, ao menos em teoria: RlxOS, Android, Endless OS, MicroOS, Fedora Silverblue e Kinoite… mas fica a pergunta: Dá pra replicar?

Requisitos

  • Sistema de arquivos EXT para o / ou compatível (vamos usar um hack que até onde sei só funciona nesse sistema de arquivos)
  • /home/ separado ou backup dos arquivos é recomendável
  • Um pendrive bootável com alguma distro Live CD
  • Alguma familiaridade com Shell Script
  • Todo o sistema instalado e configurado (afinal, ele será congelado)

Passo 1 (e único): Congelando

Aqui não tem muito segredo, basicamente vamos adicionar uma propriedade aos arquivos e pastas do sistema para que eles fiquem imutáveis:

sudo find /usr -type d -exec chattr -V +i {} \;

Note que ao fazer isso você perde atualizações, mas ainda se pode instalar aplicativos Flatpak, Snap e AppImages e óbvio acessar dispositivos, lembre-se que: /etc, /var, e /media não devem ser alteradas, se necessário explico os motivos nos comentários, além disso, diretórios do kernel não devem ser tocados (/boot, /dev, /proc, /sys…)

Passo 2: Desfazendo

Para recuperar o acesso apenas troque o + por - no comando chattr:

sudo find /usr -type d -exec chattr -V -i {} \;

Agora seu sistema volta a ser como antes

Conclusão

É um bom truque pra impedir que um usuário mais leigo não destrua o sistema (nesse caso proteger algumas pastas a mais e arquivos específicos) pode ser interessante com alguns hacks extras como manter o sistema atualizado, especialmente em empresas, penso eu que reduziria custos (por usar Linux) e chamados, o que acham? É um processo reversível mas pode ser interessante

3 curtidas

eu achava que iriamos montar as coisas em camadas

1 curtida

Até dá pra fazer usando esse método, mas é significativamente mais complexo, envolveria um tempo maior e até construir um sistema paralelo de versionamento