Como uma questão do StackExchange e com tão pouco detalhe quanto isso, não: Provavelmente não é possível fazer isso como uma etapa de configuração.
Há um pequeno número de links críticos que você pode remover, mas não de forma clara.
Geralmente você não remove todos os interpretadores de shell interativos, porque você precisa de um para executar scripts de shell. O projeto systemd tem como objetivo inicializar sem eles, e também permite que muitos softwares de sistema façam isso, mas ainda é difícil dizer que você nunca desejará executar um script de shell. Por exemplo. rpm
e dpkg
usam shell para executar ações de instalação de pacotes.
login
(e sulogin
) fazem parte de um único pacote chamado util-linux
. Geralmente você não remove este pacote. Por exemplo util-linux
é também o pacote que fornece o programa mount
, que é uma dependência de systemd
PID 1. Então você teria que quebrar (remover) partes de um pacote instalado. Isso geralmente é evitado, por exemplo, se o dano for reparado se você atualizar o pacote, ele aparecerá como avisos se você quiser verificar as somas de verificação do pacote, etc.
Por essas definições, você teria que remover systemd/system/debug-shell.service
também. Este arquivo também não é um arquivo de configuração projetado para ser modificado ou removido, e faz parte do pacote systemd
.
Não executando o software que permite o login seria a maneira padrão de conseguir isso. É bastante limpo e eficaz. Outra técnica padrão é não criar nenhum usuário com uma senha desbloqueada e (ou) shell de login válido. Se eu estivesse me sentindo paranóico, faria o último. (E a primeira seguiria naturalmente, pela limpeza e redução da "superfície de ataque", tanto quanto pela redundância).