Оболочка, которая выполняет расширение *подстановочного знака, является оболочкой, в которой вы ее набираете. Если оболочка имеет разрешения на чтение списка файлов в каталоге, то он расширяется /temp/sit/build/*до /temp/sit/build/file, и работает sudoс аргументами ls, -lи /temp/sit/build/file. Если оболочка не может найти совпадения /temp/sit/build/*(из-за отсутствия совпадений или из-за того, что оболочка не имеет разрешения на просмотр совпадений), она оставляет шаблон в покое и sudoвызывается с аргументами ls, -lи /temp/sit/build/*.
Поскольку файл не вызывается /temp/sit/build/*, lsкоманда жалуется, если вы передаете ему это имя. Напомним, что lsне расширяются подстановочные знаки, это работа оболочки.
Если вы хотите, чтобы расширение подстановочного знака происходило в каталоге, где у вас нет разрешения на чтение, тогда расширение должно происходить в оболочке, которая запускается, sudoа не в оболочке, которая вызывает sudo. sudoне запускает оболочку автоматически, вам нужно сделать это явно.
sudo sh -c 'ls -l /temp/sit/build/*'
Здесь, конечно, вы можете сделать sudo ls -l /temp/sit/build/вместо этого, но это не распространяется на другие шаблоны.