Alla ricerca di un servizio risolto dal sistema a seguito della recente divulgazione di vulnerabilità, sono arrivato a vedere un comportamento molto strano dal comando find.
root@localhost:/# find . -name "*systemd-resolved*"
./usr/share/man/man8/systemd-resolved.service.8.gz
./usr/share/man/man8/systemd-resolved.8.gz
Il comando restituisce 0 o due righe come output per la prima esecuzione. Ma se eseguo il comando la seconda volta ottengo:
root@localhost:/# find . -name "*systemd-resolved*"
./usr/share/man/man8/systemd-resolved.service.8.gz
./usr/share/man/man8/systemd-resolved.8.gz
./lib/systemd/systemd-resolved
./lib/systemd/system/systemd-resolved.service.d
./lib/systemd/system/systemd-resolved.service
Questo significa che la prima volta, "trova" in realtà non trova tutto. Anche questo succede solo una volta. L'esecuzione del comando la prossima volta mostra l'output corretto. Ho controllato questo su alcuni altri sistemi con Debian 8 (jessie) installato. Su quelli con Kernel 4.9+ questo problema si verifica sempre, ma sui sistemi con kernel 3.16 non succede.
Dopo il riavvio del sistema, tutto ciò accade di nuovo. Ma il comportamento è lo stesso per ogni singolo sistema. Ciò significa che se il test su un sistema specifico restituisce (erroneamente) due righe di output per la prima esecuzione e l'output corretto per la seconda esecuzione, quindi la prima esecuzione del comando dopo il riavvio del sistema stampa nuovamente 2 righe. Quindi i sistemi mostrano lo stesso comportamento dopo ogni riavvio (secondo i miei test). I dettagli dei file sono i seguenti:
-rw-r--r-- 1 root root ./usr/share/man/man8/systemd-resolved.service.8.gz
lrwxrwxrwx 1 root root ./usr/share/man/man8/systemd-resolved.8.gz -> systemd-resolved.service.8.gz
-rwxr-xr-x 1 root root ./lib/systemd/systemd-resolved
drwxr-xr-x 2 root root ./lib/systemd/system/systemd-resolved.service.d
-rw-r--r-- 1 root root ./lib/systemd/system/systemd-resolved.service
EDIT: A tutti coloro che suggeriscono che il problema potrebbe essere correlato a questo caso specifico per questi file specifici: " risolto dal sistema " è solo un esempio. Questo succede anche quando si cercano altre parole chiave. Questo è un altro esempio che fornisce risultati errati per la prima esecuzione:
root@localhost:/# find . -name "*apache*"
Nessuno qui è in grado di verificare questo problema su un Debian 8 con l'ultimo kernel dal repository di backport?
/lib/systemd
montato? Che tipo di filesystem è? Se si tratta di un punto di montaggio separato, a che ora è stato montato?
strace
? Su quale sistema operativo hai osservato il comportamento difettoso? Cosa intendi con "restituisce 0 o due risultati come sopra"? Zero o due righe di output o codice di uscita 0 + due righe? Succede di nuovo dopo aver avviato una nuova shell o riavviato? Potrebbe essere rilevante che la prima chiamata restituisca solo file, mentre la seconda restituisca file e directory.