Existem configurações de gerenciamento de permissões que não exigem o uso de sudo - você pode conceder ao usuário que executa o script acesso ao grupo que possui /var/log/messages ( adm , no meu laptop aqui). Como alternativa, use NOPASSWD na entrada sudoers do script, para que você não precise armazenar uma senha no script.
Se você está realmente pronto para deixar o mundo ver o que está em /var/log/messages (e eu recomendaria strongmente contra ele - realmente pode haver coisas privadas lá dentro), então o que está definindo suas permissões de volta ao padrão é provavelmente logrotate , então confira sua configuração do logrotate e encontre a sub-rotina que está fazendo sua rotação /var/log/messages e altere-a.