$ sudo -iu abc ls -ltr /sites/servers/server_instance/logs/access*
ls: cannot access /sites/servers/server_instance/logs/access*: No such file or directory
$ sudo -iu abc ls -ltr /sites/servers/server_instance/logs/
total 594812
-rwxrwxrwx 1 abc abc 45 Mar 21 12:42 old.log
-rwxrwxrwx 1 abc abc 304537970 Mar 24 12:45 console.log
-rwxrwxrwx 1 abc abc 304537970 Mar 24 13:20 access_nginx.log
¿Alguien puede explicar por qué sucede esto? Estoy atrapado en un script debido a esto.
command-line
bash
sudo
wildcards
Faisal
fuente
fuente
ls
comando que puede entonces (cuando el cambio de identidadsu
ha tomado efecto) hacer el globbing.ls
no hace nada.sh -c
a la línea de comando.Es posible que tenga deshabilitado el globbing.
Busque algo como
set -f
oset -o noglob
antes de esas líneas en el script, o si está en un shell interactivoecho $-
; si hay unf
en la salida, el globbing está deshabilitado:Para solucionarlo, elimine
set -f
oset -o noglob
del script, o si está en un shell interactivo, ejecuteset +f
oset +o noglob
:fuente
sudo -u abc /path/to/script
)? En ese caso, el globbing no debería fallar. En cualquier caso, muru sugirió el tema del camino en su respuesta, no yo. Debería considerar aceptar su respuesta ( askubuntu.com/help/accepted-answer ).