Usas systemd y tienes la v256, actualiza ya, por que tiene un fallo que elimina directorios de inicio
Hace pocos días compartimos aquí en el blog la noticia del lanzamiento de la versión de systemd 256, la cual fue una versión que introdujo una gran cantidad de cambios y novedades, y entre ellos se presentó la utilidad run0, la cual podríamos decir que fue la principal atracción de este lanzamiento.
La razón de mencionar a systemd 256, es que se ha dado a conocer la noticia de la liberación de la versión correctiva, systemd 256.1. La cual ha sido lanzada con la finalidad de abordar un problema crítico surgido en la versión 256.
Este problema afectaba la eliminación incorrecta del contenido de la partición /home al ejecutar el comando systemd-tmpfiles –purge. Originalmente, esta opción estaba diseñada para eliminar archivos y directorios creados a través de configuraciones en tmpfiles.d, pero el comportamiento no coincidía con la documentación y la expectativa de los usuarios.
El problema específico radicaba en que el nombre «tmpfiles» en la utilidad era engañoso, ya que la opción –purge no se limitaba a eliminar solo archivos temporales, sino que también afectaba a los directorios y archivos creados automáticamente a través de configuraciones en tmpfiles.d. Esto incluía la creación automática de directorios de datos, como los directorios de inicio en /home.
Por ejemplo, el archivo /usr/lib/tmpfiles.d/home.conf se encargaba de crear la estructura de directorios en /home, y el uso inadvertido de systemd-tmpfiles –purge eliminaba estos directorios y su contenido, en lugar de limitarse a limpiar solo los archivos temporales como se esperaba.
Es por ello que se lanzó la versión correctiva de systemd 256.1 con la finalidad de solucionar estas inconsistencias y problemas reportados por los usuarios y también para alinear adecuadamente la función –purge con su propósito original, asegurando que solo elimine los archivos temporales y no afecte a la estructura de directorios creada a través de configuraciones en tmpfiles.d.
Cabe mencionar que el incidente con systemd-tmpfiles y la eliminación incorrecta de directorios en la partición /home
fue una situación desafortunada que generó debate y correcciones significativas en la implementación de systemd.
Comenzaron a aparecer muchos mensajes de advertencia, que incluían rutas en
/home
(¿no pudo restaurar los tiempos de modificación…?). ¿Qué hace una herramienta de limpieza temporal en mi directorio personal? Eso no es bueno. Mi corazón empezó a latir más rápido y presioné Ctrl-C lo más rápido que pude.Resulta que se eliminó una buena parte de mi directorio personal. Afortunadamente, parece que comenzó a partir de los archivos de configuración y no de los datos reales, aunque todavía no estoy seguro de haber perdido algo importante. Apagué la máquina para recuperar los datos más tarde
extundelete
(por cierto, no funcionó, falla instantáneamente por alguna razón; tengo copias de seguridad, pero están un poco desactualizadas, estoy llenando las unidades demasiado rápido).
La respuesta inicial del desarrollador Luca Boccassi de systemd en Microsoft reflejó la frustración y el desconcierto entre los usuarios afectados por esta eliminación no deseada. Se cuestionó la implementación de una característica que, según la documentación, debía eliminar todos los archivos y directorios sin discriminación, pero que en la práctica afectaba estructuras esenciales del sistema.
Tras extensas discusiones y revisiones, se reconoció que el comportamiento de systemd-tmpfiles --purge
era incorrecto y se tomaron medidas correctivas.
Inicialmente se consideró eliminar por completo la opción --purge
, pero se optó por restringir su alcance de manera que solo afectara los archivos y directorios asociados directamente con una configuración específica en tmpfiles.d/
. Esta modificación asegura que el comando solo elimine lo que está destinado a eliminar, evitando así efectos secundarios no deseados en otras áreas del sistema de archivos.
Lo que sí tengo un problema es la documentación. Explica lo que hacen las opciones, técnicamente hablando (bueno, supongo que sí, no sé mucho sobre la arquitectura aquí), pero no explica por qué hacen lo que hacen. Cuando alguien simplemente navega por la documentación, las tres opciones parecen hacer lo mismo: limpiar archivos temporales, aunque
--purge
parece «más completo», ya que menciona que elimina todos los archivos (incluidos los datos del usuario).
Además, se actualizó el manual de usuario de systemd-tmpfiles para proporcionar una descripción más precisa de la opción --purge
y para advertir claramente sobre las posibles consecuencias de su uso incorrecto.
Finalmente, recomendamos realizar las actualizaciones correspondientes con la finalidad de que eviten pasar por la misma situación. Si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.