Se ha publicado una versión de mantenimiento de systemd system manager 256.1, que soluciona un problema que causaba que el contenido de la partición /home se eliminara al ejecutar el comando "systemd-tmpfiles --purge" agregado en systemd 256 para eliminar todos los archivos y directorios creados a través de la configuración en tmpfiles.d.
La nota de la versión systemd 256 y el manual de hombre systemd-tmpfiles indicaron que la opción "--purge" elimina todos los archivos y directorios creados a través de la configuración de tmpfiles.d, pero el nombre "tmpfiles" en el nombre de la utilidad era engañoso y daba la impresión esa eliminación sólo afecta a los archivos temporales.
Sin embargo, la configuración de tmpfiles.d no se limita a archivos temporales y también se utiliza para crear automáticamente directorios de datos inexistentes. En particular, la eliminación del contenido de los directorios de inicio se explica por el hecho de que la partición "/home" se creó utilizando el archivo "/usr/lib/tmpfiles.d/home.conf" y, en consecuencia, el comando "systemd -tmpfiles —purge” provocó su eliminación.
El error fue inicialmente descartado por Luca Boccassi, un desarrollador de systemd en Microsoft, de la siguiente manera: "Entonces, una característica que está literalmente documentada como 'todos los archivos y directorios creados por la entrada tmpfiles.d/ se eliminarán', lo cual no se hizo ¿Sabes algo que te parezca una "buena idea"? ¿Fuiste siquiera a mirar qué entradas de tmpfiles.d tenías de antemano? ¿Quizás no deberías simplemente ejecutar comandos aleatorios de los que no sabes nada mientras ignoras lo que te dice la documentación? Sólo una idea, sí”. En respuesta, señalaron que la documentación todavía describe la utilidad systemd-tmpfiles como “una herramienta para crear, eliminar y limpiar archivos y directorios temporales y no persistentes”, a pesar de que esto ha sido falso durante mucho tiempo.
Al final, después de mucha discusión durante los últimos días, se descubrió que el comportamiento de systemd-tmpfiles era incorrecto y se modificó. Inicialmente, Systemd tenía la intención de eliminar la opción “--purge” para evitar la eliminación errónea de directorios de inicio, pero luego adoptó un cambio para limitar el alcance del comando “systemd-tmpfiles –purge”; este comando ahora solo se puede ejecutar si un archivo específico El archivo de configuración se especifica explícitamente en la línea de comando desde tmpfiles.d/ y solo eliminará los archivos y directorios asociados con él. Además, se ha agregado al manual de usuario de systemd-tmpfiles una descripción más detallada de la opción y una advertencia sobre las posibles consecuencias.
Fuente: opennet.ru
