$ 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
Kann jemand erklären, warum dies passiert? Aus diesem Grund bin ich an ein Drehbuch gebunden.
quelle
ls
Befehl zu übergeben, der es dann kann (wenn sich die Identität geändertsu
hat) effekt) mach das globbing.ls
macht keine Globbing.sh -c
es zur Befehlszeile hinzufügen .Möglicherweise ist das Globbing deaktiviert.
Suchen Sie nach etwas wie
set -f
oderset -o noglob
vor diesen Zeilen im Skript oder wenn in einer interaktiven Shell ausgeführtecho $-
; Wennf
die Ausgabe ein enthält, ist das Globbing deaktiviert:Um dies zu beheben, entfernen
set -f
oderset -o noglob
aus dem Skript, oder wenn in einer interaktiven Shell laufenset +f
oderset +o noglob
:quelle
sudo -u abc /path/to/script
)? In diesem Fall sollte das Globbing nicht scheitern. Auf jeden Fall schlug muru das Pfadproblem in seiner Antwort vor, nicht ich. Sie sollten erwägen, seine Antwort zu akzeptieren ( askubuntu.com/help/accepted-answer ).