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 ~'