Você pode substituir SHELL = / bin / sh pelo seu script em / etc / profile (ou equivalente para logins ssh) - a maioria dos emuladores de terminal e muitos outros aplicativos testarão env para obter esse valor para executar o shell padrão, mas voltar para / bin / sh ou / bin / bash se falhar (você pode querer permitir-se usar o shell, então envolva-o em uma verificação de usuário / gid / uid)
use um script de shell (ou simplesmente adicione-o na parte inferior do bashrc sem o cabeçalho)
#!/bin/sh
#public domain fake shell
while read -p "$PS1" CMD; do
case "$CMD" in
*exit*|*bad_case*|*another bad case*)echo bad command: user info logged etc..;;
*good case*|*another good case*|*more*)eval "$CMD";;
*)echo command not supported;;
esac
done
ou altere as permissões no shell - mas esteja preparado para que coisas aleatórias não funcionem se você tiver que ir tão longe