O comando e os argumentos passados para sudo não devem ser colocados entre aspas, então você pode tentar
sudo -u misc -i ls -l
mas
sudo -u misc -i ls ~
não deve listar o conteúdo do diretório base de misc , mas sua casa, porque o caractere ~ foi expandido antes passado para sudo . Você poderia tentar evitar isso usando
sudo -u misc -i ls '~'
mas isso novamente não funciona, porque sudo não invoca um shell para executar seu comando, então ~ não tem significado algum em um shell.
Finalmente, a solução poderia ser
sudo -u misc -i bash -c 'ls ~'