A solução simples pode ser simplesmente remover permissões de execução em binários do sistema. Se você quiser evitar que os usuários compilem coisas ou executem coisas de diretórios que possuem acesso de gravação, você pode criar uma partição separada e montar esses sistemas de arquivos com a opção noexec.
man mount (opção noexec)
Do not allow direct execution of any binaries on the mounted file system. (Until recently it was possible to run binaries anyway using a command like /lib/ld*.so /mnt/binary. This trick fails since Linux 2.4.25 / 2.6.0.)
Acredito que outra maneira de conseguir isso seria usar algo como AppArmor ou SELinux .