mysqldump precisará de uma senha para o usuário mysql root . Se você não fornecer essa senha, não funcionará, sudo ou não sudo .
mysqldump pode consultar seu arquivo .my.cnf para obter a senha e obterá do usuário executando o comando mysqldump . Portanto, se o usuário do Linux root tiver um .my.cnf configurado com uma senha, então sim, sudo ajudará. No entanto, se o usuário mysql root tiver uma senha e não estiver configurado em nenhum .my.cnf , então sudo não ajudará.
Você pode adicionar o usuário e a senha do mysql root ao seu usuário .my.cnf e então você não precisa do sudo , mas isso é um risco de segurança.
Como as outras respostas também apontam, você pode precisar de sudo para escrever a saída em algum lugar que root (Linux, não mysql) possua.
Por último, você não nos diz qual usuário está executando o script, se ele está no crontab root (por exemplo), então sudo não será necessário, embora você ainda possa precisa de um .my.cnf para fornecer a senha.
Se o seu usuário mysql root não tiver nenhuma senha configurada, o único problema é escrever a saída. Nesse caso, sudo é necessário se você não executar o script como root .
Se você executar o script como raiz (por exemplo, como um script em /etc/cron.daily ), não deverá usar o sudo no script, independentemente de todos os comentários acima.