Por que não funciona:
A razão pela qual isso não funciona é que su exige que você execute o comando a partir de um terminal, e o cron não fornece um terminal.
A maneira simples de fazer isso é usar o Vixie Cron:
Se você não se importou em usar o Vixie Cron, acho que a coisa mais simples a fazer seria colocar o script para esse usuário executando o seguinte como aquele usuário:
crontab -e
Em seguida, use 0 0 * * 0
como a hora.
Se você quiser usar o Anacron como usuário:
Anacron é útil se você quiser ter certeza de que o trabalho não será perdido se a máquina estiver desligada. Para executar um usuário diferente, especifique um arquivo de guia anacron e um diretório de spool diferentes, coloque o seguinte no cron do sistema para ser executado como o usuário especificado, anacron -t /home/foo/etc/anacrontab -S /home/foo/var/spool/
e edite esse arquivo de guia para executar o script.
Existe também um mini-howto , mas parece mais complicado.
Você terá que testá-los para verificar. Por fim, lembre-se disso para testes futuros. run-parts --test /etc/cron.weekly