Tutoriales

Comando chattr en Linux: usando el atributo de perfil lsattr

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:

operadorInfluencia
+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:

banderasignificado
iInmutable: no se puede modificar, eliminar, cambiar de nombre ni vincular, ni siquiera como root
aSolo agregar: el archivo solo se puede abrir en modo agregar; El contenido existente no se puede sobrescribir ni truncar.
ASin actualización a tiempo: no se registra ningún tiempo de acceso al leer archivos
dSin volcado: omitido dump herramienta de copia de seguridad
SActualizaciones 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 +i Recurrir 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.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba