Isso acontece porque você só está executando o comando echo como root. O redirecionamento de saída é tratado pelo seu shell (não raiz). Para evitar isso, não use o redirecionamento do shell e use um comando real para manipular a escrita: tee
. O que você quer fazer pode ser feito assim:
echo "xyz" | sudo tee test > / dev / null
(se você não redirecionar a saída, o tee irá gerar xyz para stdout também)