You need to invoke a shell to do the pathname expansion for "*". As you have it written, sudo
invokes the ls
command directly, not through a shell, so ls
is trying to find a file named literally "*" in the /root directory. You need to do it this way:
sudo sh -c "ls /root/*"