Remover o acesso a outros comandos além de su
não tornará seu sistema inerentemente mais seguro.
Primeiro, você não será capaz de impedir que comandos internos sejam executados se você atribuir o usuário ao shell conhecido, exceto os gostos de rbash mas o próprio rbash é um pouco mais permissivo e permite que o usuário execute alguns comandos. Se você puder fazer as pazes com isso, você pode usá-lo.
Outra solução não tão segura, mas viável, é definir o shell padrão do usuário como um script e esse script ter os comandos su -
e exit
nele e nada mais, além de sequências de interrupção de trapping como ctrl-c
ou ctrl-z
. Isso é chamado de interface cativa. Você também precisa colocar este script com seu caminho completo no final do /etc/shells
. Como é um script, ele tem todas as ramificações de segurança que acompanham isso, presente ou futuro.