Содержание статьи
В традиционных UNIX-подобных ОС файловые системы реализованы в ядре или его модулях. Это значит, что ошибки в их коде стоят очень дорого, а любая нестандартная функциональность не приветствуется. Микроядерные ОС (в том числе Minix, QNX и GNU/Hurd) лишены этого недостатка. В них драйверы и файловые системы — это обычные приложения, поэтому существуют ФС, которые способны представить файлами не только файлы /dev и /proc, но и нечто совершенно иное (простейший пример: облачный «диск» типа Dropbox).
Щепотку микроядерности можно добавить и в Linux. FUSE (дословно «файловая система в пользовательском пространстве») — специальная подсистема Linux, позволяющая выносить файловые системы в обычные приложения, ну или делать их частью уже существующих приложений.
На базе FUSE создано большое количество нестандартных и порой весьма чудных файловых систем. Эта статья — попытка отобрать самые заметные и перспективные из них.
1. GitFS
Система управления версиями Git и сервис на ее основе GitHub столь популярны среди разработчиков, что обычным пользователям приходится обращаться к ней в поисках свежих версий необходимых приложений. И если разработчики, размещая свои проекты, волей-неволей вынуждены постигать все нюансы работы системы, то рядовой линуксоид, как правило, просто хочет, сделав минимум телодвижений, иметь под рукой исходники с последними изменениями и не вдаваться в подробности того, что такое система управления версиями и как она работает.
GitFS предоставляет возможность смонтировать удаленный репозиторий Git, как обычную файловую систему, не требуя от пользователя глубоких познаний в работе самого Git. Более того, GitFS позволяет вносить в файлы изменения, которые будут автоматически закоммичены в репозиторий, и просматривать историю изменений. А это уже может быть интересно и программистам, которые используют Git в своих проектах.
Установка в Ubuntu:
$ sudo add-apt-repository ppa:presslabs/gitfs
$ sudo apt-get update
$ sudo apt-get install gitfs
В Arch Linux:
$ yaourt -S gitfs
Пример монтирования репозитория libfuse:
$ gitfs https://github.com/libfuse.git /каталог/монтирования
2. CryFS
Защититься от кражи секретных документов помогает шифрование. CryFS позволяет сделать его быстрым и ненавязчивым. Она размещает зашифрованные файлы внутри обычного каталога, тем самым обеспечивая возможность их безопасного хранения в облачных сервисах (например, Google Drive). CryFS шифрует не только содержимое файлов, но и их размеры, метаданные и структуру каталогов.
Чтобы скрыть размеры файла, CryFS разбивает его содержимое на блоки одинакового размера и шифрует их каждый в отдельности. Древовидная структура используется для упорядочивания блоков, принадлежащих одному файлу, при этом расходуется незначительное количество ресурсов. Вместе с тем шифруется и сама древовидная структура, и метаданные.
Каждый зашифрованный блок хранится в виде файла в базовом каталоге, при этом в качестве названия файла используется случайный идентификатор. Базовый каталог можно настроить для синхронизации с облачным сервисом. Злоумышленник, имеющий доступ к базовому каталогу, увидит только набор зашифрованных блоков одинакового размера и не может увидеть содержимое, размеры файлов, метаданные или структуру каталогов хранящихся данных.
Блоки шифруются с использованием блочного шифра, выбранного пользователем. Когда создается файловая система, генерируется случайный ключ шифрования. Этот ключ хранится в файле конфигурации, который затем зашифровывается с использованием пароля, указанного пользователем.
Установка в Ubuntu и Debian производится с помощью скрипта:
$ wget -O - https://www.cryfs.org/install.sh | sudo bash
Arch-based-дистрибутивам доступна установка из AUR:
$ yaourt -S cryfs
После установки появится возможность создать криптокаталог.
$ cryfs basedir mountdir
Во время создания каталога система задаст ряд вопросов о настройках. Проще всего ответить утвердительно на вопрос об использовании настроек по умолчанию.
Управление файлами, подлежащими шифрованию, осуществляется в виртуальном каталоге mountdir, затем они шифруются и помещаются в каталог basedir.
Работать с файловой системой можно с помощью стороннего графического интерфейса SiriKali.
3. GDriveFS
Раз уж мы упомянули облачные хранилища, нелишним будет рассказать об инструменте, который позволяет смонтировать к локальной системе сетевой диск Google. GDriveFS — наиболее заметный из множества подобных средств.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»