
chattr Establezca y elimine atributos de archivos especiales que operan a nivel del sistema de archivos, separados de los bits de permiso estándar. Puede marcar el archivo como inmutable para que nada pueda eliminarlo o sobrescribirlo, o configurar el archivo de registro para que solo se pueda agregar para que entren nuevas entradas pero el contenido existente permanezca sin cambios. su comando compañero lsattr Muestra las propiedades actuales de cualquier archivo.
Cómo usar el comando chattr en Linux
La sintaxis es:
bashchattr [OPTIONS] [OPERATOR][ATTRIBUTES] FILE...
Tres operadores controlan cómo se aplican las propiedades:
| operador | Influencia |
|---|---|
+ | Agrega el atributo especificado a un atributo existente |
- | Eliminar el atributo especificado |
= | Establezca exactamente estas propiedades, reemplazando todas las demás propiedades. |
Los indicadores de atributos más útiles son:
| bandera | significado |
|---|---|
i | Inmutable: no se puede modificar, eliminar, cambiar de nombre ni vincular, ni siquiera como root |
a | Solo agregar: el archivo solo se puede abrir en modo agregar; El contenido existente no se puede sobrescribir ni truncar. |
A | Sin actualización a tiempo: no se registra ningún tiempo de acceso al leer archivos |
d | Sin volcado: omitido dump herramienta de copia de seguridad |
S | Actualizaciones sincrónicas: los cambios se escriben en el disco inmediatamente |
Aparecen dos signos en chattr manual pero No honrado A través del núcleo ext2, ext3 o ext4: s (Eliminar con seguridad) y u (no se puede eliminar). Configurarlos no tiene ningún efecto en estos sistemas de archivos.
Establecer o borrar i y a Requiere raíz.
Utilice lsattr para ver los atributos del archivo
Antes de cambiar las propiedades, verifique lo que se ha configurado:
bashlsattr todo.txt# ----i------A--e----- todo.txt
Cada posición corresponde a una bandera de atributo. Los guiones son marcadores de posición para banderas no configuradas. este e El preajuste de bandera (rango) aparece en ext4, y no se puede eliminar y chattr – Está gestionado por el propio sistema de archivos.
funciona lsattr Opciones:
bashlsattr -l /etc/ # descriptive names instead of single-letter flagslsattr -a /etc/ # include hidden dot fileslsattr -d /etc/ # show attributes of the directory itself, not its contentslsattr -R /etc/ # recursive listing of entire directory tree
Hacer que los archivos sean inmutables o de solo agregarlos
archivos inmutables — Incluso si eres root, no puedes modificarlo, eliminarlo ni cambiarle el nombre:
bashsudo chattr +i ~/demo.txtlsattr ~/demo.txt# ----i---------e----- /home/user/demo.txt
Para editar o eliminar el archivo nuevamente, primero borre la bandera:
bashsudo chattr -i ~/demo.txt
Adjuntar solo archivos de registro — Se puede ingresar material nuevo, pero el contenido existente no se puede sobrescribir ni truncar:
bashsudo chattr +a /var/log/app.logecho "new entry" >> /var/log/app.log # worksecho "overwrite" > /var/log/app.log # fails: Operation not permitted
este a El indicador se aplica a nuevos intentos de escritura. Los descriptores de archivos abiertos existentes no se verán afectados retroactivamente; esto está determinado por el diseño central, p. chattr Manual.
Combina varios logotipos En un comando:
bashsudo chattr +iA todo.txt # immutable + no atime updates at oncesudo chattr -iA todo.txt # clear both at once
Los atributos del archivo son No guardado Se utiliza al copiar cp o rsync — Debes volver a aplicarlos después de copiarlos.
Aplique atributos de forma recursiva y use el operador =
este = operador Establezca exactamente el indicador que especifique y borre todas las demás propiedades configurables por el usuario:
bashsudo chattr =A todo.txt
Esto solo deja A poner. Banderas para la gestión del sistema de archivos, p. e no están afectados y aún pueden aparecer en lsattr producción.
Cambios recursivos y -R Se aplica a directorios y todo lo que hay en ellos:
bashsudo chattr -R +i ~/config/sudo chattr -R -i ~/config/ # reverse before any updates
⚠️Advertencia: Aplicando
+iRecurrir a directorios del sistema, p./etc/nginx/Evitará que el Administrador de paquetes y las herramientas de configuración actualicen archivos allí. Elimine esta bandera antes de ejecutar actualizaciones del sistema.
si chattr incluso con el fracaso sudoverifique que el sistema de archivos lo admita: df -T /path/to/file. FAT, NFS y tmpfs no admiten estas propiedades.
usar lsattr Antes de realizar cualquier cambio, +i Proteja archivos importantes contra una eliminación accidental, +a Para que el registro esté completo, y = Cuando necesita establecer propiedades exactas de forma limpia. Si tiene algún problema, deje un comentario a continuación.









