Coloque em um CD ou DVD. O tipo outrora gravável, não os apagáveis. Ou algum outro tipo de dispositivo somente leitura.
Ok, eu suponho que você quer uma solução de software, então aqui estão algumas idéias: Você poderia criar um conjunto de regras do SELinux que desativa o syscall (*) que chattr
usa, mesmo para o root. Outra possibilidade seria usar os recursos : a configuração de +i
exige o recurso CAP_LINUX_IMMUTABLE
, portanto, se você puder organizar o conjunto de limites de recursos de todos os processos para não incluir esses, ninguém poderá alterá-los. Mas você precisaria do suporte de init
para que isso se aplique a todos os processos. O Systemd pode fazer isso , mas acho que precisaria ser feito para cada serviço separadamente.
(* talvez tenha sido um ioctl
)
No entanto, se você fizer isso, lembre-se de que uma raiz comum pode modificar o sistema de arquivos a partir do dispositivo bruto (é para isso que o debugfs
), portanto, também é necessário evitar isso e impedir a modificação do kernel (módulos de carregamento). Os módulos de carregamento podem ser evitados com o kernel.modules_disabled
sysctl, mas não tenho certeza sobre como impedir o acesso a dispositivos brutos. E faça todos os arquivos de configuração relevantes também imutáveis.
De qualquer forma, depois disso, você também precisaria evitar alterar a maneira como o sistema inicializa, caso contrário, alguém poderia reinicializar o sistema com um kernel que permite substituir as restrições acima.