Você está desenhando uma falsa dicotomia entre "fazer login como root" e "ter acesso ao sudo". Estes não devem ser pensados como coisas tão diferentes. Se você não confia em seus usuários com acesso root, não os deixe usar o sudo! Bloquear apenas o comando sudo su
é um absurdo, existe um sudo -s
para obter um shell de root ou você pode sudo bash
. Ou há milhões de outras maneiras.
Basicamente você não pode criar uma lista negra de coisas que usuários do sudo não podem fazer. Você irá falhar, pois não foi feito para funcionar dessa maneira. Uma vez que você tenha acesso a um punhado de coisas como PID 1, o sistema é seu.
O que você pode fazer é colocar na lista de permissões processos específicos. Certifique-se de que esses processos não sejam também graváveis pelo usuário e certifique-se de que eles não aceitam entradas ou argumentos do usuário de uma maneira que permita a execução arbitrária de comandos. Cuidado com muitas ferramentas comuns unix permitem comandos arbitrários de uma forma ou de outra. Um bom método, se eles precisam apenas de acesso sudo para fazer uma tarefa, é criar um script wrapper que faça exatamente essa tarefa e não aceite argumentos e permita que o usuário execute esse script como root.