Como a dica de usar o PAM para deixar apenas determinados usuários virarem usarem o su já está muito bem documentada, vou postar uma usando os mesmos princípios para impedir que usuários “engraçadinhos” desliguem ou reiniciem sua máquina remotamente via SSH:
Basta adicionar como “required” a linha “pam_wheel.so group=root” nos arquivos “reboot”, “poweroff” e “halt”, todos em /etc/pam.d (em distribuições que suportam o PAM, exemplo testado no Mandriva 2007):
[tiago@localhost pam.d]$ cat reboot
auth sufficient pam_rootok.so
auth required pam_wheel.so group=root
auth required pam_console.so
account required pam_permit.so
[tiago@localhost pam.d]$ cat poweroff
auth sufficient pam_rootok.so
auth required pam_wheel.so group=root
auth required pam_console.so
account required pam_permit.so
[tiago@localhost pam.d]$ cat halt
auth sufficient pam_rootok.so
auth required pam_wheel.so group=root
auth required pam_console.so
account required pam_permit.so
Basta fazer um logout/ login para que as restrições entrem em cena. Outra forma de fazer isso sem usar o PAM é tirando a permissão de execução dos binários citados (halt, poweroff, shutdown, reboot…) para o grupo “outros” e deixar apenas para o usuário e o grupo escolhido. No exemplo, usei o grupo “root” mesmo, mas pode ser usado qualquer um de sua preferência. Jedi ou Sayajin geralmente são boas escolhas de nome para o grupo dos dotados de super poderes
Como útima observação, eu prefiro usar o PAM para fazer isso, por ser a solução mais correta, e por outro motivo: Fazer backup do /etc é fácil… agora duvido que você se lembre de fazer backup/restore dos arquivos em /usr/sbin e /sbin … 