Respuestas:
Los atributos manejados por lsattr
/ chattr
en Linux y algunos de los cuales pueden ser almacenados por bastantes sistemas de archivos (ext2 / 3/4, reiserfs, JFS, OCFS2, btrfs, XFS, nilfs2, hfsplus ...) e incluso consultados sobre CIFS / SMB (cuando tiene extensiones POSIX) son banderas. Solo bits que se pueden activar o desactivar para deshabilitar o habilitar un atributo (como inmutable o archivo ...). La forma en que se almacenan es específica del sistema de archivos, pero generalmente como un registro de 16/32/64 bits en el inodo.
La lista completa de indicadores se encuentra en los sistemas de archivos nativos de Linux (ext2 / 3/4, btrfs ...) aunque no todos los indicadores se aplican a todos los FS, y para otros FS no nativos, Linux intenta asignarlos a equivalentes características en el sistema de archivos correspondiente. Por ejemplo, el indicador simmutable almacenado por OSX en sistemas de archivos HFS + se asigna al indicador inmutable correspondiente en Linux chattr
. Qué indicador es compatible con qué sistema de archivos apenas está documentado. A menudo, leer el código fuente del núcleo es la única opción.
Los atributos extendidos, por otro lado, se configuran con setfattr
o attr
en Linux almacenan más que banderas. También se adjuntan a un archivo, y son pares clave / valor que pueden ser (tanto clave como valor) matrices arbitrarias de bytes (aunque con limitación de tamaño en algunos sistemas de archivos).
La clave puede ser, por ejemplo: system.posix_acl_access
o user.rsync.%stat
. El system
espacio de nombres está reservado para el sistema (no cambiaría las ACL de POSIX con setfattr
, pero más aún setfacl
, las ACL de POSIX se almacenan como atributos extendidos al menos en algunos sistemas de archivos), mientras que las user
aplicaciones pueden usar el espacio de nombres (aquí rsync
lo usa para su --fake-super
opción, para almacenar información sobre propiedad o permisos cuando no eres superusuario).
Nuevamente, cómo se almacenan es específico del sistema de archivos. Ver WikiPedia para más información .
lsattr
/ chattr
trabaja para ext
sistemas que no son archivos? Si no, ¿cómo cambiaría las banderas en ext
sistemas que no son Linux? Además, la attr
página del manual dice que está escrita para XFS (a pesar de que funciona para mí ext4
). De hecho, pasé mucho tiempo investigando esto ayer, es difícil encontrar buena información. Consulte - unix.stackexchange.com/questions/118840/…
lsattr/chattr
son para banderas de archivo. No todos los indicadores son compatibles con todos los sistemas de archivos, por ejemplo, algunos de ellos, como la compresión, no funcionarán en ext4 pero sí en btrfs.
reiserfs
.
Todo ha sido almacenado inode
. Cuando cambia un archivo, de hecho cambia su. Para inode
scripting tiene un buen comando:
stat --format=%a yourfile
Puede usar %variable
y devolver un útil deinode
Pero tu respuesta:
xattr
está en MacOS y chattr
en linux box.
attr
comando está destinado a sistemas de archivos XFS, el comando independiente del sistema de archivos equivalente essetfattr