Como eu disse nos comentários, saber o que você digita é a melhor segurança .
Veja um exemplo que foi usado em uma pergunta relacionada
'base64 --decode <<< "cHJpbnRmICclcycgICdIZWxsbyBXb3JsZCcK"'
(e, para completar, você pode usar -d
flag em vez de --decode
. Alguém que tentou editar minha resposta disse -d
é inválido, mas é muito válido, especificado no manual )
Você sabe o que isso faz? É um printf '%s' 'Hello World'
disfarçado. Inofensivo, certo? E se isso fosse rm -rf /
? A lista negra não salvará você quando algo estiver disfarçado. Você pode ver esse comando colocado em um fórum legítimo por um usuário mal-intencionado? Porque isso acontece. E não tem que ser exatamente esse comando - se você é um usuário novo e não tem idéia do que está fazendo, um usuário mal-intencionado poderia dizer-lhe remova o python ou algum outro pacote de chaves, e isso consertaria qualquer problema que o trouxesse para o blog ou fórum deles.
Mas, claro, você pode colocar algo na lista negra por meio da função global (porque as funções têm precedência sobre comandos ou aliases) em /etc/bash.bashrc
da seguinte forma:
function rm{
if [ "" = "-rf" ] && [ "" = "/" ]
then
echo "This command is bad juju"
else
rm "$@"
fi
}
Este é apenas um exemplo. E um muito redundante - rm -rf /
no Ubuntu por padrão requer confirmação.
Isso também não é à prova de balas. E se eu, como invasor, usar um shell diferente? Seu bashrc
magic não terá energia em dash
shell, que vem com o Ubuntu também por padrão
Além disso, você vai escrever a função na lista negra de todos os comandos maliciosos?
Nota adicional: copiar o que parece ser um comando "inofensivo" também pode ser perigoso. Consulte Como posso me proteger desse tipo de abuso da área de transferência? e a resposta de Stephane Chazelas sobre o assunto.