Você pode passar -c
para su
para executar um comando. Se sudo
permitir que você execute o comando, isso deve funcionar:
sudo su - john -c "/usr/share/script.pl"
Tenha em mente que, passando -
para su
, seu ambiente será o mesmo que se você tivesse efetuado login, portanto, se o script depender de variáveis de ambiente (como o caminho atual), talvez seja necessário fazer ajustes.