O shell que está fazendo a expansão do curinga * é o shell onde você o digita. Se o shell tiver permissão para ler a lista de arquivos no diretório, ele expandirá /temp/sit/build/* para /temp/sit/build/file e executará sudo com os argumentos ls , -l e /temp/sit/build/file . Se o shell não conseguir encontrar qualquer correspondência para /temp/sit/build/* (seja porque não há correspondências ou porque o shell não tem permissão para ver as correspondências), ele deixará o padrão sozinho e sudo será chamado com o caractere argumentos ls , -l e /temp/sit/build/* .
Como não há nenhum arquivo chamado /temp/sit/build/* , o comando ls reclama se você passar esse nome para ele. Lembre-se de que ls não expande curingas, esse é o trabalho do shell.
Se você quiser que uma expansão com curinga ocorra em um diretório no qual não tenha permissão de leitura, a expansão deverá ocorrer em um shell iniciado por sudo em vez de no shell que chama sudo . sudo não inicia automaticamente um shell, você precisa fazer isso explicitamente.
sudo sh -c 'ls -l /temp/sit/build/*'
Aqui, é claro, você pode fazer sudo ls -l /temp/sit/build/ , mas isso não é generalizado para outros padrões.