La nueva versión de GNU Coreutils 9.5 ya fue liberada y en este lanzamiento se han implementado nuevas funciones asi como también diversas correcciones de errores y también mejoras en las diversas utilidades de este paquete de software.
Si desconoces de Coreutils, debes saber que es un paquete de software desarrollado por el proyecto GNU que incluye una variedad de herramientas básicas esenciales para sistemas operativos tipo Unix. Estas herramientas incluyen comandos como cat, ls y rm, entre otros.
El paquete Coreutils es una fusión de tres paquetes previos: utilidades de archivos (fileutils), utilidades de shell (shellutils) y utilidades de procesamiento de texto (textutils). Esta combinación proporciona una amplia gama de funcionalidades para el manejo de archivos, la interacción con la shell y el procesamiento de texto en sistemas Unix.
¿Qué hay de nuevo en Coreutils 9.5?
En esta nueva versión de GNU Coreutils 9.5 se destaca la solución al problema crítico en chmod -R
que afectaba la seguridad, donde un atacante podría reemplazar un archivo deseado con un enlace simbólico no deseado, lo que permitía realizar acciones no autorizadas en archivos importantes.
Se mejoró la eficiencia y el rendimiento en varias operaciones como cp
, mv
, install
, cat
y split
para mejorar las operaciones de lectura y escritura. Una de las mejoras clave ha sido el aumento del tamaño mínimo de bloque legible o grabable, pasando de 128 KB a 256 KB. Mientras que en las utilidades env
, kill
y timeout
, se agregó soporte para señales sin nombre
Se implementaron mejoras en las operaciones de SELinux relacionadas con la copia de archivos, lo que contribuye a una mejor gestión de la seguridad en entornos donde SELinux está presente.
Ademas de ello, se destaca qué se mejoró la interoperabilidad con sistemas de archivos CIFS GNU/Linux en cp
, mv
, e install
, corrigiendo diagnósticos falsos que podrían haber confundido a los usuarios al copiar archivos en estos sistemas.
En Coreutils 9.5 se realizaron ajustes en ls --dired
, numfmt
, pinky
, y wc
para alinear su comportamiento con las expectativas del usuario y mejorar la consistencia en su uso y se resolvieron varios problemas en split
, tail
, y wait.
Por otra parte, base32
y base64
ahora son más flexibles al decodificar datos sin relleno y al detectar codificaciones corruptas, ademas de que en la utilidadcp --no-clobber
y mv -n
ahora tienen un comportamiento más intuitivo al lidiar con archivos existentes en el destino, evitando salidas de error innecesarias y mejorando la experiencia del usuario.
Tambien se destacan los justes que se implementaron en la forma en que sort
maneja las dependencias de libcrypto, lo que reduce la carga inicial y mejora la eficiencia en su uso habitual, mientras que wc
experimentó mejoras significativas en el conteo de palabras, especialmente en configuraciones regionales específicas.
De los demás cambios que se destacan de esta nueva versión:
cp --no-preserve=mode
ahora preserva correctamente los bits set-group-ID en los directorios creados, asegurando que la configuración de permisos se mantenga consistente.- Las mejoras en
join
yuniq
hacen que estas herramientas manejen mejor los caracteres multibyte, lo que garantiza un comportamiento más preciso al trabajar con datos multilingües. numfmt
ahora acepta sufijos más largos, lo que brinda flexibilidad adicional al formatear números con unidades de medida.wc
ahora cuenta los caracteres no imprimibles como parte de las palabras, lo que mejora la precisión al contar el contenido de los archivos.chgrp --from=OWNER:GROUP
introduce una forma más específica de restringir los cambios en archivos basados en los propietarios y grupos actuales, lo que proporciona un mayor control sobre la administración de permisos.cp --keep-directory-symlink
ymv --keep-directory-symlink
agregan la capacidad de preservar y seguir enlaces simbólicos existentes a directorios en el destino, lo que mejora la integridad de la estructura de directorios al mover o copiar archivos.- Se agregó la opción «
--update=none-fail
» a las utilidadescp y mv
, similar a «--no-clobber
«, pero con la particularidad de que la ejecución fallará si los archivos ya existen. - La opción
-a (--argv0)
se incorporó a la utilidadenv
para anular el parámetro null de la línea de comando, es decir, la ruta al archivo ejecutable.
Si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.