¿Cuál es la relación y la diferencia entre xattry chattr? Quiero saber cuando configuro un chattratributo en Linux qué está sucediendo dentro del kernel de Linux y los metadatos de inodo.
Ayer escribí una respuesta larga sobre una pregunta relacionada que podría ser útil: unix.stackexchange.com/questions/118840/… . Tenga en cuenta que el attrcomando está destinado a sistemas de archivos XFS, el comando independiente del sistema de archivos equivalente essetfattr
Graeme
Respuestas:
13
Los atributos manejados por lsattr/ chattren 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 setfattro attren 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_accesso user.rsync.%stat. El systemespacio 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 useraplicaciones pueden usar el espacio de nombres (aquí rsynclo usa para su --fake-superopció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 .
¿Hace lsattr/ chattrtrabaja para extsistemas que no son archivos? Si no, ¿cómo cambiaría las banderas en extsistemas que no son Linux? Además, la attrpá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/…
Graeme
@Graeme, las respuestas a esas preguntas están en mi respuesta. lsattr/chattrson 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.
Stéphane Chazelas
Si está interesado, escribí un script para probar estas banderas en algunos sistemas de archivos y poner los resultados en mi respuesta vinculada anteriormente. No tuve éxito al configurar / leer ninguno de ellos reiserfs.
Graeme
-1
Todo ha sido almacenado inode. Cuando cambia un archivo, de hecho cambia su. Para inodescripting tiene un buen comando:
attr
comando está destinado a sistemas de archivos XFS, el comando independiente del sistema de archivos equivalente essetfattr
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
oattr
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
ouser.rsync.%stat
. Elsystem
espacio de nombres está reservado para el sistema (no cambiaría las ACL de POSIX consetfattr
, pero más aúnsetfacl
, las ACL de POSIX se almacenan como atributos extendidos al menos en algunos sistemas de archivos), mientras que lasuser
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 .
fuente
lsattr
/chattr
trabaja paraext
sistemas que no son archivos? Si no, ¿cómo cambiaría las banderas enext
sistemas que no son Linux? Además, laattr
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. Parainode
scripting tiene un buen comando:Puede usar
%variable
y devolver un útil deinode
Pero tu respuesta:
xattr
está en MacOS ychattr
en linux box.fuente