Положительные герои.
Одна из хороших вещей в XFS - она имеет много специальных функциональных возможностей. Одной из них являются "access control lists" или ACL. Сейчас это поддерживается в XFS по умолчанию. Списки контроля доступа позволяют определять более дробные разрешения на файлы. Например, вместо ограниченного "rwx" для владельца, группы и других, становится возможным добавлять любое число дополнительных пользователей или групп и определять "rwx" permissions и для них.
Полное описание access control lists - вне контекста этой статьи. Если вам это интересно, посмотрите большое введение в ACL на bestbits site, особенно, если посетить страничку "Why you may want Access Control Lists (ACLs)". Обратите внимание, большая часть технической информации этого сайта связана с поддержкой ACL под ext2 и ext3 (но ничего дополнительного не требуется для ACL под XFS).
XFS имеет еще одну особенность, называемую расширенными атрибутами (extended attributes). Такие extended attributes позволяют вам ассоциировать определенные пользователем данные с объектами файловой системы. Например, если вы имеете графический файл по имени mygraphic.png, можно прикрепить к нему атрибут, называемый "thumbnail", содержащий маленькую версию изображения. Эти данные не будут видимы обычными файловыми операциями ввода/вывода, но к ним можно обращаться из программ, использующих API специальных расширенных атрибутов. По своей сути, расширенные атрибуты похожи на ветви ресурсов (resource fork), существующие на MacOS системах.
Имеется пример использования расширенных атрибутов через команду attr из командной строки. Скажем, я желаю добавить атрибут description к моему домашнему каталогу. Я ввожу:
$ attr -s description -V "Home of Daniel Robbins" /home/drobbins Attribute "description" set to a 22 byte value for /home/drobbins: Home of Daniel Robbins
После этого, чтобы видеть список атрибутов, ассоциированных с /home/drobbins, можно ввести:
$ attr -l /home/drobbins Attribute "description" has a 22 byte value for /home/drobbins/
А чтобы просмотреть содержание атрибута description, я ввожу:
$ attr -q -g description /home/drobbins/ Home of Daniel Robbins
Расширенные атрибуты просты и забавны в использовании. Вы можете узнать о них больше, прочитав man attr. XFS включает также API C для взаимодействия с extended attributes. Если вы интересуетесь работой с C++ IOStream интерфейсом к расширенным атрибутам, можете посмотреть libferris на SourceForge.
Конечно, расширенные атрибутыs и ACL открывают интересные возможности, но будьте осторожны. Большинство программ резервного копирования в настоящее время еще "не понимают" ни EA, ни ACL. Известные мне исключения - xfsdump и xfsrestore, поставляемые с XFS distribution. Если используете другую backup программу, проведите сначала интенсивное тестирование на поддержку EA и ACL.
Я надеюсь, вам понравилось это "мгновенное" введение в файловую систему XFS. Ждите новых статей!