Al buscar un servicio resuelto por el sistema después de la reciente divulgación de vulnerabilidad, llegué a ver un comportamiento muy extraño del 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
El comando devuelve 0 o dos líneas como salida para la primera ejecución. Pero si ejecuto el comando la segunda vez que obtengo:
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
Esto significa que la primera vez, "buscar" en realidad no encuentra todo. Además, esto solo ocurre una vez. La ejecución del comando la próxima vez muestra la salida correcta. Lo comprobé en algunos otros sistemas con Debian 8 (jessie) instalado. En aquellos con Kernel 4.9+, este problema exacto siempre ocurre, pero en sistemas con kernel 3.16 no sucede.
Después de reiniciar el sistema, todo esto vuelve a suceder. Pero el comportamiento es el mismo para cada sistema individual. Eso significa que si la prueba en un sistema específico devuelve (incorrectamente) dos líneas de salida para la primera ejecución y la salida correcta para la segunda ejecución, la primera ejecución del comando después de reiniciar el sistema nuevamente imprime 2 líneas. Entonces, los sistemas muestran el mismo comportamiento después de cada reinicio (de acuerdo con mis pruebas). Los detalles de los archivos son los siguientes:
-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
EDITAR: Para todos aquellos que sugieren que el problema puede estar relacionado con este caso específico para estos archivos específicos: " resuelto por el sistema " es solo un ejemplo. Esto sucede al buscar otras palabras clave también. Este es otro ejemplo que da resultados incorrectos para la primera ejecución:
root@localhost:/# find . -name "*apache*"
¿Nadie aquí puede verificar este problema en un Debian 8 con el último núcleo del repositorio de backport?
/lib/systemd
monta? ¿Qué tipo de sistema de archivos es? Si es un punto de montaje separado, ¿a qué hora se montó?
strace
? ¿En qué sistema operativo observó el comportamiento defectuoso? ¿Qué quiere decir con "devuelve 0 o dos resultados como el anterior"? ¿Cero o dos líneas de salida, o código de salida 0 + dos líneas? ¿Sucede nuevamente después de iniciar un nuevo shell o reiniciar? Puede ser relevante que la primera llamada solo devuelva archivos, mientras que la segunda devuelve archivos y directorios.