Não tenho certeza sobre o restante, mas o motivo pelo qual você está recebendo arquivos vazios é que você tem um erro de sintaxe no script:
#!/bin/sh
/usr/local/sbin/updater.sh ${1} & > /tmp/updater.out'
deve ser (você também deve capturar STDERR):
#!/bin/sh
/usr/local/sbin/updater.sh ${1} > /tmp/updater.out 2>/tmp/updater.error &
Do jeito que você tem, o script é colocado em segundo plano antes de qualquer saída gerada e você obtém arquivos vazios. Além disso, eu assumo o 'no final da linha é um erro de digitação certo?
Quanto ao resto, qual usuário está sendo executado como? Eu não sei o suficiente sobre o udev para adivinhar. Quem executa o script tem os direitos para executar dpkg
?