Primeiro, certifique-se de que mysql possa gravar em /home/username/Desktop/basic/ ; Se você planeja fazer vários despejos no mesmo diretório, uma maneira bem clara de fazer isso seria definir a propriedade da pasta como mysql e definir a permissão SGID na pasta (graças ao muru para essa sugestão ): desta forma mysqldump será capaz de gravar na pasta, mas novos arquivos herdarão o grupo do diretório pai; isso tem a vantagem de deixar para o seu usuário ler, gravar e executar permissões nos dumps.
sudo chown mysql /home/username/Desktop/basic/ && sudo chmod g+s /home/username/Desktop/basic/
Além disso, certifique-se de que não haja nenhum arquivo chamado user.sql ou user.txt presente no diretório de destino antes de emitir o comando; se mysql não puder gravar no diretório de destino ou um arquivo com o mesmo nome de um dos arquivos de saída esperados existir antes de emitir o comando, mysqldump falhará.