Intereting Posts
Почему мое имя пользователя вдруг добавило @dhcp? SSHFS, похоже, работает, но Sublime + SSHFS не работает? Fedora не загружается при обновлении с 25 до 26 Почему некоторые мои журналы используют Localhost и другие Hostname – разные серверы open () вернуть новый дескриптор файла posix Как только застегивать файлы определенного пользователя? Пользовательское ядро ​​для отключения SATA и USB-устройств /etc/apt/sources.list не будет принимать URL-адреса с подключением https Ограничение доступа к файлам на внешнем диске ошибка виртуализации: методы установки "не могут быть указаны для гостей контейнера" Проблема при чтении содержимого файла журнала каждые 30 минут firmware-iwlwifi не работает на ядре linux 4.6 – debian jessie Если я изменю разрешения на файл tar, это применимо к файлам внутри него? Клонирование жестких дисков и контрольные суммы без согласования Как заставить resolvconf добавлять серверы имен в список, а не добавлять их?

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

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

Атрибуты, обрабатываемые 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.