chattr es el comando en Linux que permite al usuario establecer ciertos atributos de un archivo. lsattr es el comando que muestra los atributos de un archivo.
La mayoría de los sistemas tipo BSD , incluido macOS , siempre han tenido un comando chflags análogo para establecer los atributos, pero ningún comando destinado específicamente a mostrarlos; en su lugar se utilizan opciones específicas para el comando ls . El comando chflags apareció por primera vez en 4.4BSD .
Solaris no tiene comandos destinados específicamente a manipularlos. En su lugar se utilizan chmod [1] y ls [2] .
Otros sistemas operativos tipo Unix , en general, no tienen comandos análogos. Los comandos que suenan similares chatr (de HP-UX ) y lsattr (de AIX ) existen pero tienen funciones no relacionadas.
Entre otras cosas, el comando chattr es útil para hacer que los archivos sean inmutables, de modo que los archivos de contraseñas y ciertos archivos del sistema no se puedan borrar durante las actualizaciones de software. [3]
Las herramientas de línea de comando chattr (para manipular atributos) y lsattr (para enumerar atributos) eran originalmente específicas de la familia Second Extended Filesystem ( ext2 , ext3 , ext4 ) y están disponibles como parte del paquete e2fsprogs .
Sin embargo, desde entonces la funcionalidad se ha ampliado, total o parcialmente, a muchos otros sistemas, incluidos XFS , ReiserFS , JFS y OCFS2 . El sistema de archivos btrfs incluye la funcionalidad de atributos, incluido el C
indicador, que desactiva la función incorporada de copia en escritura (CoW) de btrfs debido al rendimiento más lento asociado con CoW.
La forma del comando chattr es:
chattr [ -RVf ] [ -+ = AacDdijsTtSu ] [ -v versión ] archivos...
-R
cambia recursivamente los atributos de los directorios y sus contenidos-V
debe ser detallado e imprimir la versión del programa-f
suprime la mayoría de los mensajes de errorLa forma del comando lsattr (gnu 1.41.3):
lsattr [ -RVadv ] [ archivos... ]
-R
enumera recursivamente los atributos de los directorios y sus contenidos-V
muestra la versión del programa-a
enumera todos los archivos en directorios, incluidos los archivos de puntos-d
enumera directorios como otros archivos, en lugar de enumerar su contenidoAlgunos atributos incluyen:
CAP_LINUX_IMMUTABLE
capacidad puede establecer o borrar estos atributos.CAP_SYS_RESOURCE
capacidad puede establecer o borrar este atributo.El comando chflags no es específico de sistemas de archivos particulares. UFS en sistemas BSD y APFS , HFS+ , SMB , AFP y FAT en macOS admiten al menos algunos indicadores.
La forma del comando chflags es:
chflags [ -R [ -H | -L | -P ]] archivo de banderas ...
-H
Si se especifica la opción -R, se siguen los enlaces simbólicos en la línea de comando. (No se siguen los enlaces simbólicos encontrados en el recorrido del árbol).-L
Si se especifica la opción -R, se siguen todos los enlaces simbólicos.-P
Si se especifica la opción -R, no se siguen enlaces simbólicos. Este es el valor predeterminado.-R
Cambie los indicadores de archivo para las jerarquías de archivos basadas en los archivos en lugar de solo los archivos en sí.Los sistemas tipo BSD, en general, no tienen ningún comando predeterminado a nivel de usuario destinado específicamente a mostrar las banderas de un archivo. El comando ls funcionará con las banderas pasadas o con las , según el sistema.-lo
-lO
El superusuario puede configurar o borrar todos los atributos tradicionales; algunos también pueden ser configurados o borrados por el propietario del archivo. Algunos atributos incluyen:
ATTRIB
– comando análogo en MS-DOS, OS/2 y Microsoft Windowschown
– cambiar la propiedad del archivo/directorio en un sistema Unixchmod
– cambiar los atributos de control de acceso a archivos en un sistema Unixcacls
– cambiar las listas de control de acceso a archivos en Microsoft Windows NT