"what if somebody substitutes this executable for their own in say ~/.local/bin ?
Então o roteiro não funciona para eles.
Mas isso não importa, já que eles podem conseguir quebrar o script de outras maneiras ou executar outro programa diretamente sem mexer em PATH
ou env
.
A menos que seus usuários tenham diretórios outros usuários em PATH
, ou possam editar o PATH
de outros usuários, não há realmente a possibilidade de um usuário atrapalhar outro.
No entanto, se não fosse um script de shell, mas algo que conceda privilégios adicionais, como um wrapper setuid para algum programa, as coisas seriam diferentes. Nesse caso, seria necessário usar um caminho absoluto para executar o programa, colocá-lo em um diretório que os usuários não privilegiados não podem modificar e limpar o ambiente ao iniciar o programa.