Ответы:
Атрибуты обрабатываются в lsattr/ chattrв Linux и некоторые из них могут храниться в нескольких файловых системах (ext2 / 3/4, reiserfs, JFS, OCFS2, btrfs, XFS, nilfs2, hfsplus ...) и даже запрашиваться через CIFS / SMB (когда используется расширение POSIX) - это флаги. Только биты, которые можно включить или отключить, чтобы отключить или включить атрибут (например, неизменяемый или архивный ...). Как они хранятся, зависит от файловой системы, но обычно в виде 16-битной / 32-битной записи в inode.
Полный список флагов можно найти в собственных файловых системах Linux (ext2 / 3/4, btrfs ...), хотя не все флаги применимы ко всем FS, а для других не собственных FS Linux пытается сопоставить их с эквивалентными функции в соответствующей файловой системе. Например, флаг simmutable, который хранится в OSX в файловых системах HFS +, сопоставляется с соответствующим неизменяемым флагом в Linux chattr. Какой флаг поддерживается какой файловой системой, практически не документирован. Часто чтение исходного кода ядра является единственным вариантом.
С другой стороны, расширенные атрибуты, установленные с помощью setfattrили attrв Linux, хранят больше, чем флаги. Они также прикреплены к файлу и представляют собой пары ключ / значение, которые могут быть (как ключом, так и значением) произвольными массивами байтов (хотя с ограничением размера в некоторых файловых системах).
Ключ может быть, например: system.posix_acl_accessили user.rsync.%stat. Пространство systemимен зарезервировано для системы (вы не изменили бы списки ACL для POSIX setfattr, но более того setfacl, ACL для POSIX просто хранятся как расширенные атрибуты, по крайней мере, в некоторых файловых системах), тогда как userпространство имен может использоваться приложениями (здесь rsyncиспользует его для своей --fake-superопции, чтобы хранить информацию о владельце или разрешениях, когда вы не являетесь суперпользователем).
Опять же, как они хранятся, зависит от конкретной файловой системы. Смотрите WikiPedia для получения дополнительной информации .
lsattr/ не chattrдля extфайловых систем? Если нет, то как бы вы изменили флаги на не- extсистемах в Linux? Также на attrстранице руководства написано, что она написана для XFS (хотя она у меня работает ext4). Я на самом деле потратил много времени на изучение вчерашнего дня, трудно найти хорошую информацию. Пожалуйста, смотрите - unix.stackexchange.com/questions/118840/…
lsattr/chattrдля файловых флагов. Не все флаги поддерживаются всеми файловыми системами, например, некоторые из них, такие как сжатие, не будут работать на ext4, но будут работать на btrfs.
reiserfs.
Все было обработано. inodeКогда вы меняете файл, вы действительно меняете его. inodeДля скриптов у вас есть хорошая команда:
stat --format=%a yourfile
Вы можете использовать %variableи вернуть полезное изinode
Но твой ответ:
xattrнаходится на MacOS и chattrна коробке Linux.
attrкоманда предназначена для файловых систем XFS, эквивалентная независимая от файловой системы командаsetfattr