Se ha publicado una versión corregida del gestor de sistemas systemd 256.1, que resuelve un problema que llevaba a la eliminación del contenido de la sección /home al ejecutar el comando «systemd-tmpfiles —purge», añadido en systemd 256 para eliminar todos los archivos y directorios creados a través de las configuraciones en tmpfiles.d.
En la nota de la versión de systemd 256 y en la guía man de systemd-tmpfiles se indicó que la opción «—purge» elimina todos los archivos y directorios creados a través de las configuraciones de tmpfiles.d, pero el nombre «tmpfiles» en el nombre de la utilidad resultaba confuso y daba la impresión de que la eliminación solo se refería a archivos temporales.
Sin embargo, las configuraciones de tmpfiles.d no se limitan a archivos temporales y también se utilizan para crear automáticamente directorios que no existen. En concreto, la eliminación del contenido de los directorios personales se explica porque mediante el archivo «/usr/lib/tmpfiles.d/home.conf» se creó la sección «/home» y, por lo tanto, el comando «systemd-tmpfiles —purge» llevaba a su eliminación.
Inicialmente, el mensaje de error fue rechazado por Luca Boccassi, desarrollador de systemd en Microsoft, de la siguiente manera: «¿Así que la función que está documentada literalmente como ‘todos los archivos y directorios creados por la entrada tmpfiles.d/ serán eliminados’, lo que ustedes no sabían, sonaba como ‘una buena idea’? ¿Acaso fueron y comprobaron qué entradas de tmpfiles.d tenían antes? Tal vez no deberían simplemente ejecutar comandos aleatorios de los que no saben nada, ignorando lo que les dice la documentación. Solo una idea, eh». En respuesta, se les indicó que en la documentación la utilidad systemd-tmpfiles sigue siendo descrita como «una herramienta para crear, eliminar y limpiar archivos y directorios transitorios y temporales», a pesar de que eso ya no es cierto desde hace tiempo.
Al final, después de largas discusiones en los últimos días, se reconoció que el comportamiento de systemd-tmpfiles era erróneo y se modificó. Inicialmente, para evitar la eliminación accidental de los directorios de inicio, los desarrolladores de systemd tenían la intención de eliminar la opción "—purge", pero luego aceptaron un cambio que limita el alcance del comando "systemd-tmpfiles —purge"; este comando ahora solo puede ejecutarse explícitamente desde la línea de comandos con un archivo de configuración específico de tmpfiles.d/ y solo eliminará los archivos y directorios relacionados. Además, se añadió una descripción más detallada de la opción y una advertencia sobre las posibles consecuencias en la guía man de systemd-tmpfiles.
Fuente: opennet.ru
