Разница между xattr и chattr

Какова связь и разница между xattr и chattr ? Я хочу знать, когда я устанавливаю атрибут chattr в Linux, что происходит внутри ядра ядра Linux и метаданных inode.

2 Solutions collect form web for “Разница между xattr и chattr”

Атрибуты, обрабатываемые lsattr / chattr на Linux, и некоторые из которых могут быть сохранены в нескольких файловых системах (ext2 / 3/4, reiserfs, JFS, OCFS2, btrfs, XFS, nilfs2, hfsplus …) и даже запрошены над CIFS / SMB (когда с расширениями POSIX) являются флагами. Просто биты, которые можно включить или выключить, чтобы отключить или включить атрибут (например, неизменяемый или архив …). То, как они хранятся, зависит от конкретной файловой системы, но обычно это как запись 16/32/64 бит в 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 для получения дополнительной информации .

Все было сделано в inode Когда вы меняете файл, вы действительно меняете свой inode .for scripting, у вас есть хорошая команда:

 stat --format=%a yourfile 

Вы можете использовать %variable и возвращать полезную информацию из inode

Но ваш ответ:

xattr находится на MacOS и chattr на linux box.

  • `chattr + i` ошибка в NFS
  • Возможности файла Linux теряются при изменении файла. Это ожидаемое поведение?
  • Просмотреть расширенные атрибуты с помощью coreutils ls на Mac
  • Подходы, чтобы запретить пользователю удалять домашнюю папку
  • Нормально ли, что мне нужно u + w для установки расширенных атрибутов файловой системы?
  • В файлах Ftp'd установлен безопасный атрибут удаления
  • Недопустимый аргумент Richacl при попытке установить атрибуты
  • Как использовать расширенные атрибуты для предварительного просмотра изображения?
  • Почему «attr -l.» Рассказывает мне об атрибуте «selinux», который «attr-g selinux» отказывается читать?
  • Неизменяемый бит в AIX?
  • Каковы затраты на хранение xattrs в файловых системах ext4, btrfs?
  • Linux и Unix - лучшая ОС в мире.