Em vez de validar os binários que você vai executar, você pode executar os binários corretos desde o início. Por exemplo. Se você quiser ter certeza de que não vai executar /tmp/surprise/tar , apenas execute /usr/bin/tar no seu script. Como alternativa, defina seu $PATH para um valor sane antes de executar qualquer coisa.
Se você não confiar em arquivos em /usr/bin/ e outros diretórios do sistema, não há como recuperar a confiança. No seu exemplo, você está verificando o proprietário com ls , mas como você sabe que pode confiar em ls ? O mesmo argumento se aplica a outras soluções, como md5sum e strace .
Onde é necessária alta confiança na integridade do sistema, soluções especializadas como IMA são usadas. Mas isso não é algo que você poderia usar a partir de um script: todo o sistema tem que ser configurado de uma maneira especial, com o conceito de arquivos imutáveis no lugar.
