Comandos para gestionar atributos de archivos en Linux

Última actualización: 18/02/2026
Autor: Isaac
  • Linux combina permisos tradicionales y atributos extendidos para controlar de forma precisa el comportamiento de archivos y directorios.
  • Los atributos de sistema se gestionan con chattr y lsattr, permitiendo funciones como inmutabilidad, solo append o sincronización forzada en disco.
  • Los atributos extendidos de usuario, manejados con attr, setfattr y getfattr, añaden metadatos clave-valor sin afectar a los permisos clásicos.
  • Es esencial preservar atributos al copiar, mover o sincronizar archivos usando opciones específicas en cp, tar, rsync y otras utilidades.

Gestión de atributos de archivos en Linux

Si trabajas con Linux a diario, tarde o temprano vas a necesitar algo más que los típicos permisos de lectura, escritura y ejecución. Los atributos de archivo y los permisos avanzados marcan la diferencia entre un sistema bien protegido y uno en el que cualquiera puede liarla sin querer.

En este artículo vamos a ver, con calma pero sin rodeos, los comandos clave para gestionar los atributos de archivos y directorios en Linux: desde los permisos básicos y su representación octal, hasta los atributos extendidos de sistema y de usuario, pasando por utilidades como chattr, lsattr, attr, setfattr y getfattr. Verás ejemplos reales, comandos concretos y pequeñas recomendaciones prácticas para que puedas aplicar todo esto en tu propio equipo o servidor.

Permisos y atributos básicos de ficheros en Linux

En cualquier sistema Linux, cada fichero y directorio tiene asociados unos permisos y unos atributos que determinan qué puede hacer el propietario, el grupo y el resto de usuarios con ese recurso. Aunque muchas veces se mete todo en el mismo saco, conviene distinguir claramente permisos tradicionales de atributos extendidos.

Los permisos clásicos controlan si se puede leer, escribir o ejecutar un archivo o directorio. Estos permisos se aplican en tres niveles jerárquicos: propietario (user), grupo (group) y resto de usuarios (others). Si hay conflicto, manda siempre el nivel más específico: primero el propietario, luego el grupo y por último el resto.

En la salida de ls -l verás una cadena de diez caracteres donde el primero indica el tipo de objeto (d para directorio, – para fichero normal, etc.) y los nueve siguientes muestran los permisos para propietario, grupo y otros. Así, algo como drwxr-xr-x significa directorio con permisos rwx (7) para el propietario, r-x (5) para el grupo y r-x (5) para el resto.

Esos permisos se pueden expresar también en notación octal, que es la más cómoda cuando quieres ajustar permisos de golpe. Cada permiso suma un valor: lectura vale 4, escritura 2 y ejecución 1. Por ejemplo, rwx es 4+2+1=7, r-x es 4+0+1=5 y rw- es 4+2+0=6. Un permiso 755 significa: 7 para el propietario, 5 para el grupo y 5 para el resto.

Para modificar estos permisos se usa el comando chmod, mientras que chown permite cambiar el propietario y el grupo de un fichero o carpeta. Ambos son el pan de cada día en administración de sistemas, pero no cubren todo el comportamiento posible de un archivo; ahí entran en juego los atributos extendidos.

Atributos extendidos: mucho más que permisos

Además de los permisos clásicos, muchos sistemas de archivos Linux (especialmente ext2, ext3 y ext4) permiten trabajar con atributos extendidos que añaden información o modifican el comportamiento de los ficheros y directorios. Esta capa extra es clave para cosas como archivos inmutables, compresión transparente, control de backups o metadatos personalizados.

De forma general, podemos dividir estos atributos en dos grandes grupos: atributos extendidos de sistema, que cambian cómo se comporta el archivo a nivel interno, y atributos extendidos de usuario, que sirven para guardar pares clave-valor asociados al fichero sin afectar a sus permisos clásicos.

Es importante entender que no todos los atributos están soportados en todos los sistemas de archivos. Algunos flags solo existen o tienen sentido en ext2/3/4, y otros pueden ser de solo lectura (por ejemplo, ciertos atributos relacionados con cifrado), de manera que solo se pueden consultar, pero no modificar.

Otra idea clave es que los atributos extendidos no siempre se conservan automáticamente cuando copiamos o sincronizamos archivos. Salvo que uses las opciones adecuadas en herramientas como cp, tar o rsync, puedes perder estos atributos sin darte cuenta al mover datos entre discos o servidores.

Por último, recuerda que la mayoría de las operaciones sensibles sobre atributos de sistema (como marcar un archivo como inmutable) requieren privilegios de administrador. Es decir, tendrás que usar sudo o trabajar directamente como root para poder aplicar ciertos cambios.

Atributos extendidos de sistema con chattr y lsattr

En los sistemas de archivos ext2, ext3 y ext4, existe un conjunto de atributos especiales que se gestionan con dos comandos fundamentales: lsattr (para ver atributos) y chattr (para cambiarlos). Estos atributos permiten, por ejemplo, que un archivo sea solo agregable, inmutable o que sus cambios se sincronicen inmediatamente en disco.

Para consultar los atributos de un fichero concreto, basta con ejecutar lsattr indicando el nombre del archivo. Por ejemplo: lsattr prueba.txt. La salida muestra una serie de caracteres donde cada letra activa indica un atributo concreto (por ejemplo, i para inmutable, a para solo append, e para extents, etc.).

Entre los atributos de sistema más habituales te vas a encontrar con varios flags especialmente útiles. Cada uno de ellos cambia de forma sutil o drástica cómo se comporta el archivo, y en algunos casos se convierten en auténticos salvavidas para evitar desastres o mejorar el rendimiento.

  Tutorial para abrir y gestionar archivos PKG en Mac

Algunos de estos atributos solo pueden modificarse con permisos de administrador y, en otros casos, ni siquiera se pueden tocar desde chattr (como es el caso del atributo e, que indica el uso de extents y es gestionado internamente por el sistema de archivos).

Sintaxis del comando chattr

El comando chattr sigue una estructura muy sencilla pero poderosa: chattr ARCHIVO…. A partir de ahí, jugarás con un operador y una lista de flags para sumar, quitar o fijar atributos concretos.

El bloque de puede tomar tres valores posibles, que cambian por completo el efecto del comando. Por un lado tenemos el símbolo +, que sirve para añadir nuevos atributos manteniendo los ya existentes. Es la opción típica cuando quieres activar una marca adicional en un fichero que ya tiene otros atributos.

El operador funciona justo al revés: elimina los atributos indicados y deja intactos los demás. Es la forma habitual de quitar, por ejemplo, la inmutabilidad de un archivo para volver a poder modificarlo o eliminarlo.

Por último, el operador = es bastante más radical: con él, reemplazas todo el conjunto de atributos actuales por los que indiques. Es decir, solo quedarán activos los flags que pongas tras el signo igual, borrando de un plumazo los anteriores.

Tras el operador se indica una lista de uno o más expresados mediante letras. Puedes combinarlos sin espacios, por ejemplo +iA para añadir simultáneamente la inmutabilidad y la desactivación de atime. Normalmente estos cambios se aplican a uno o varios ficheros, o incluso a directorios completos y su contenido si lo combinas con opciones recursivas.

Atributos de sistema más utilizados

Entre todos los flags disponibles para chattr, hay unos cuantos que son los que más se usan en el día a día de administración. Entender qué hace cada uno te ahorrará muchos sustos:

El atributo a activa el modo de solo append. Cuando marcas un archivo con este flag, solo se puede abrir en modo de adición: se pueden añadir datos al final, pero no sobrescribir ni truncar el contenido existente. Es muy típico en ficheros de log que no quieres que nadie borre o manipule.

Con el atributo A le dices al sistema que no actualice la marca de tiempo de acceso (atime) cuando se abra el archivo. Esto reduce escrituras innecesarias en disco y puede mejorar el rendimiento en sistemas donde se hacen muchas lecturas, a costa de perder esa información de cuándo se accedió por última vez.

El flag d indica que el archivo debe ignorarse en determinadas copias de seguridad, en concreto en operaciones con herramientas como dump. Si marcas un fichero con este atributo, el programa que respeta este flag no lo incluirá en sus backups.

Con el atributo D aplicado a un directorio, fuerzas a que el contenido del directorio se sincronice a disco en cada escritura. Es decir, los cambios en los metadatos de ese directorio se vuelven más seguros a costa de mayor carga de I/O, similar a lo que harías al utilizar operaciones síncronas.

El atributo i es probablemente el más famoso: marca el archivo como inmutable. En ese estado, el archivo no se puede borrar, ni modificar, ni truncar, ni enlazar; solo es posible verlo o listar su contenido. Para quitar esta marca necesitas privilegios de administrador y usar chattr -i antes de poder tocarlo.

El flag S obliga a que los cambios sobre ese archivo se escriban en disco de forma síncrona. Cada modificación queda inmediatamente persistente en el almacenamiento, reduciendo el riesgo de pérdida de datos en caso de caída, aunque penaliza el rendimiento.

El atributo e indica que el archivo está utilizando extents para mapear los bloques en disco, una forma más eficiente de gestionar el espacio. Este atributo es gestionado automáticamente por el sistema de archivos y, en general, no se puede modificar con chattr, simplemente aparece al consultar los atributos con lsattr.

Existen otros flags menos habituales, como los relacionados con compresión transparente, borrado seguro o recuperación posterior a la eliminación, pero su disponibilidad real depende mucho del kernel y del sistema de archivos concreto, así que conviene revisar siempre man chattr en tu distribución para tener la lista completa y actualizada.

Ejemplos prácticos con chattr y lsattr

Para ver qué atributos tiene un fichero, el comando de referencia es lsattr. Por ejemplo, si lanzas lsattr listaYT, puede que veas una línea como ————–e—– listaYT, lo que significa que solo está activo el atributo e.

Si quieres hacer que ese archivo sea inmutable para evitar que se borre o se cambie por accidente, usarías sudo chattr +i listaYT. Después de aplicar este comando, cualquier intento de eliminación o modificación fallará, incluso si se usa rm, salvo que antes se quite el atributo.

Para comprobar que el cambio se ha aplicado, puedes volver a ejecutar lsattr listaYT y verás algo como —-i———e—– listaYT. Ahí aparece la i marcando que el fichero está inmutable y seguirá así hasta que lo desactives.

Si necesitas revertir esa protección, basta con ejecutar sudo chattr -i listaYT. A partir de ese momento, el archivo vuelve a comportarse como uno normal y ya puedes borrarlo, renombrarlo o modificarlo sin restricciones adicionales.

  Cómo escanear documentos en WhatsApp: guía completa y ajustes clave

También puedes combinar varios atributos en una sola llamada. Por ejemplo, sudo chattr +iA todo.txt marcaría el fichero como inmutable y, además, indicaría al sistema que no actualice su atime cuando se acceda. De nuevo, lsattr te mostrará la combinación de flags activos de un vistazo.

En caso de que quieras dejar solo un atributo concreto y eliminar cualquier otro que pudiera estar configurado, podrías usar el operador de igualdad. Por ejemplo, sudo chattr =e todo.txt establecería solamente el atributo e como activo. En algunos casos verás este ejemplo escrito entre comillas para evitar problemas de interpretación por parte del shell, como sudo chattr «=e» todo.txt.

Atributos extendidos de usuario: metadatos personalizados

Además de los atributos de sistema, Linux permite asociar a los archivos y directorios atributos extendidos de usuario, que funcionan como pequeños pares clave-valor almacenados en el propio sistema de archivos. Son muy útiles para guardar información adicional sin tocar el contenido del fichero ni su nombre.

Estos atributos de usuario no influyen en absoluto en los permisos ni en la forma en la que se puede acceder al archivo. Su objetivo es ampliar la información asociada, por ejemplo añadiendo un campo «autor», una descripción, etiquetas o cualquier otra metainformación que te sea útil en tu flujo de trabajo.

Para poder utilizar atributos extendidos de usuario, hay dos requisitos fundamentales: por un lado, tener instalado el paquete attr en tu sistema; por otro, que el sistema de archivos correspondiente se haya montado con la opción user_xattr activada, ya que de lo contrario estos metadatos simplemente no estarán disponibles. Si trabajas también en Windows, puedes aprender a cambiar los atributos de archivos en Windows.

El paquete attr incluye varias herramientas clave para trabajar con estos atributos: el comando attr en sí, y también las utilidades setfattr y getfattr. Todas ellas te permiten añadir, listar, consultar o eliminar atributos de usuario de forma bastante directa.

Al usar setfattr o getfattr, hay que tener en cuenta que los nombres de atributo deben ir con un prefijo de espacio de nombres, normalmente user.. Por ejemplo, si quieres guardar el autor de un fichero, podrías usar algo como user.autor, user.desc o cualquier otra clave que tenga sentido en tu contexto.

Comando attr y sus opciones principales

El comando attr ofrece una interfaz muy sencilla para gestionar estos metadatos. Cuenta con varias opciones que te permiten listar, modificar, leer o eliminar atributos en un fichero determinado.

La opción -ql sirve para listar todos los atributos que tiene un archivo. Es especialmente útil para ver de un vistazo qué metadatos personalizados están asociados a un fichero o directorio sin necesidad de recordar los nombres de las claves.

Si quieres añadir o modificar un atributo, puedes usar la opción -qs, que establece el valor para una clave dada. Suele combinarse con -V para indicar el valor que quieres guardar, como en el típico ejemplo de añadir un autor.

Para consultar el valor de un atributo concreto, se emplea la opción -qg. Con ella indicas qué clave te interesa y el comando devuelve el valor almacenado sin modificar nada en el fichero.

Por último, la opción -qr te permite eliminar atributos de usuario del archivo. Es la forma de limpiar metadatos que ya no necesitas o que quieres sobrescribir desde cero sin dejar restos de valores antiguos.

Un ejemplo típico sería añadir un atributo llamado «autor» a un archivo llamado fichero1.txt. Podrías hacerlo con un comando del tipo attr -qs autor -V «SeguiNet» fichero1.txt. Después, si ejecutas attr -ql fichero1.txt, verás listados los atributos asociados, incluyendo ese campo de autor que acabas de definir.

Preservar atributos al copiar, mover y sincronizar archivos

Uno de los puntos más delicados al trabajar con atributos extendidos es que no siempre se mantienen automáticamente cuando copias, mueves o archivás ficheros entre rutas, discos o sistemas de archivos. Si no tienes esto presente, puedes perder metadatos o flags importantes sin darte cuenta.

Por ejemplo, cuando utilizas cp para copiar archivos, si no añades ninguna opción extra, es muy probable que los atributos extendidos no se conserven. Para evitarlo, puedes recurrir a la opción –preserve=mode,ownership,timestamps,xattr, que indica explícitamente que quieres preservar permisos, propietario, marcas de tiempo y atributos extendidos.

En el caso de mv, en general los atributos se mantienen por defecto siempre que el destino se encuentre en un sistema de archivos que soporte atributos extendidos. Si mueves un archivo dentro del mismo sistema de archivos, simplemente se renombra o reubica sin perder banderas ni xattrs.

Las herramientas de archivado también tienen sus propias opciones para tratar con estos metadatos. Con tar, por ejemplo, puedes usar la opción –xattrs tanto al crear como al extraer un archivo tar para que se incluyan los atributos extendidos en el paquete y se restauren al descomprimirlo.

Si usas bsdtar, la opción relevante para mantener atributos al extraer es -p, que preserva permisos y metadatos especiales según lo permita el sistema. Conviene revisar siempre la documentación de la herramienta concreta que estés utilizando.

  Archivos .etl en Windows: Qué son, para qué sirven y cómo analizarlos

Para sincronizaciones entre sistemas, rsync es uno de los grandes clásicos, pero por defecto tampoco copia los atributos extendidos. Para que lo haga, debes añadir la opción –xattrs, que le indica que quieres incluir estos metadatos en el proceso de sincronización junto con el resto de información del archivo.

Comandos de gestión de archivos y permisos útiles en el día a día

Aunque el foco aquí son los atributos, no tiene sentido hablar de ellos sin recordar algunos de los comandos básicos de gestión de archivos y directorios que se usan constantemente en entornos Linux, especialmente en perfiles de administración de sistemas y DevOps.

Para listar el contenido de un directorio con algo más de detalle, se suele usar ls -lah, que muestra permisos, propietario, tamaño en formato legible y también archivos ocultos. Para moverte entre carpetas, el comando por excelencia es cd, y para ver en qué ruta estás exactamente utilizas pwd.

A la hora de crear estructura de directorios, el comando mkdir te permite generar nuevas carpetas, mientras que rmdir sirve para eliminar directorios vacíos. Cuando necesitas borrar directorios con contenido, rm -rf es la combinación típica, aunque conviene usarla con muchísimo cuidado porque elimina sin preguntar.

Para manejar archivos individuales, cp copia, mv mueve o renombra, y touch crea ficheros vacíos o actualiza su marca de tiempo. En cuanto a la visualización de contenido, cat muestra el archivo completo en salida estándar, mientras que head, tail y less permiten ver por partes, líneas iniciales o finales, o paginar tranquilamente.

En el terreno de permisos y propiedad, chmod es la herramienta para ajustar las máscaras de lectura, escritura y ejecución (ya sea en modo simbólico o numérico), mientras que chown usuario:grupo archivo cambia el propietario y el grupo asociado al fichero. Además, umask define la máscara por defecto para los nuevos archivos que se creen.

En cuanto a archivado y compresión, tar y zip son los grandes clásicos. Combinaciones como tar -cvf archivo.tar carpeta/ o tar -czvf archivo.tar.gz carpeta/ te permiten generar backups sencillos, mientras que tar -xvf y tar -xzvf extraen su contenido. Para archivos ZIP, zip -r y unzip siguen el mismo patrón.

También es importante saber trabajar con enlaces simbólicos usando ln -s, inspeccionarlos con ls -l y descubrir a qué apuntan realmente con readlink -f. Y para comprobar cómo vas de espacio en disco, df -h y du -sh son dos aliados indispensables.

Ejercicios y ejemplos sobre permisos y atributos

Si estás empezando o quieres afianzar conceptos, viene muy bien practicar con pequeños ejercicios sobre permisos clásicos y propiedades de archivos antes de meterte a fondo con atributos avanzados. La idea es que te familiarices con comandos como ls -l, chmod y chown en situaciones reales.

Por ejemplo, puedes empezar comprobando cuáles son los atributos y permisos del directorio /home ejecutando algo tan sencillo como ls -l /home. Ahí verás los permisos octales traducidos a letras para cada subdirectorio de usuario.

Otro ejercicio típico consiste en obtener la representación octal de los permisos de /etc/hosts. Tras un ls -l /etc/hosts, puedes interpretar la cadena de permisos. Si ves algo como rw- r– r–, sabrás que eso equivale a 644 (6 para el propietario, 4 para el grupo y 4 para el resto).

También es interesante analizar casos como un fichero con permisos 755. Si traduces esto, verás que el propietario tiene rwx (7), el grupo tiene r-x (5) y el resto r-x (5). Para el grupo, eso significa que puede leer y ejecutar, pero no escribir; el propietario, en cambio, puede hacer de todo.

Un ejercicio un poco más avanzado sería crear un fichero en /root (por ejemplo, star.txt), cambiar su propietario a otro usuario con chown y ajustar sus permisos para que pueda ser leído y ejecutado por cualquiera. Para entrar en /root necesitarás elevar privilegios (por ejemplo, con sudo -i), y después podrás usar chmod para fijar los permisos adecuados (por ejemplo, 755 o 555, según quieras permitir escritura al propietario o no).

Realizar estas prácticas te ayudará a interiorizar cómo se combinan los conceptos de propietario, grupo y resto de usuarios, y cómo se representan numéricamente los permisos. Una vez lo tengas dominado, pasar a atributos extendidos de sistema y usuario te resultará mucho más natural.

En conjunto, conocer y dominar todas estas herramientas —desde lsattr y chattr hasta attr, setfattr y getfattr, sin olvidar los comandos de gestión de archivos y permisos básicos— te permite tener un control muy fino sobre el comportamiento de tus ficheros en Linux, tanto en tu equipo personal como en servidores críticos.

comandos para gestionar atributos de archivos en windows
Artículo relacionado:
Comandos para gestionar atributos de archivos en Windows