=== AppJail, AppScripts и песочница для X11-приложений Ссылки: + link:https://github.com/DtxdF/AppJail[AppJail на GitHub] URL: link:https://github.com/DtxdF/AppJail[] + link:https://github.com/DtxdF/appscript[AppScript на GitHub] URL: link:https://github.com/DtxdF/appscript[] + link:https://github.com/DtxdF/x11appjail[x11appjail на GitHub] URL: link:https://github.com/DtxdF/x11appjail[] + Контакт: Jesús Daniel Colmenares Oviedo **AppJail** — это open-source фреймворк под лицензией BSD-3, полностью написанный на POSIX-совместимом shell и C, предназначенный для создания изолированных, переносимых и простых в развёртывании окружений с использованием клеток (jail) во FreeBSD, которые ведут себя как приложения. **AppScript** — это очень лёгкий и простой в использовании инструмент для создания самодостаточных исполняемых файлов. Виртуализация на уровне операционной системы не так совершенна, как виртуализация на уровне оборудования: уязвимость в устройстве, не скрытом внутри клетки, может создать угрозу для хоста, но при правильной настройке это гораздо лучше, чем запуск приложения напрямую на хосте. Клетки — это реализация виртуализации на уровне ОС для FreeBSD. С помощью клетки можно легко ограничить множество аспектов: link:https://appjail.readthedocs.io/en/latest/limits/[ограничение ресурсов], link:https://appjail.readthedocs.io/en/latest/DEVFS/[ограничение доступа к устройствам /dev], ограничение файловой системы, link:https://github.com/DtxdF/AppJail/wiki/filter[ограничение сети] и многие другие. Всё это прозрачно для приложения, работающего внутри клетки. Однако одна проблема, особенно с X11-приложениями, — это отсутствие изоляции. Пользователи часто используют трюк с `xhost +`, чтобы запустить X11-приложение внутри клетки и отобразить его на X-сервере хоста. Это создаёт угрозу безопасности, поскольку, даже если X11-приложение работает внутри клетки и даже если оно работает как непривилегированный процесс, оно может получить большое количество информации с хоста. Поэтому скомпрометированное приложение, приложение с уязвимостью или просто собирающее много информации в «телеметрических целях» может стать кошмаром при такой настройке и в худшем случае скомпрометировать хост. Недавно в AppJail была добавлена новая команда для решения этой проблемы: man:appjail-x11[1]. Эта команда запускает приложение внутри клетки, но отображает его на новом X-сервере, созданном Xephyr, который уже аутентифицирован с помощью **MIT-MAGIC-COOKIE-1**. Это гораздо проще и легковеснее, чем настраивать SSH-сервер внутри клетки, создавать для этого ключевую пару, подключаться к клетке и так далее. Однако эта команда не ограничивается только этим: вы можете изменять размер окна Xephyr, и ваше DE/WM будет соответствующим образом обновляться, поскольку эта команда способна обнаруживать такие изменения. Однако, хотя с помощью этой команды уже многое достигнуто, пользователь должен установить DE/WM и приложение внутри клетки, а возможно, установить и пользовательский .desktop-файл на хосте. Это можно автоматизировать с помощью Makejails, и продвинутые пользователи справятся с этим, поскольку они любят всё настраивать, но для обычного пользователя (или даже для меня) я хотел распространять приложения так, чтобы пользователям не нужно было делать ничего, кроме как просто запустить приложение, и именно эту задачу призван решать x11appjail. link:https://github.com/DtxdF/x11appjail[x11appjail] — это репозиторий, содержащий предварительно написанные скрипты для развёртывания некоторых X11-приложений с использованием appjail-x11, который автоматизирует установку .desktop-файла, иконки, создание jail через Makejails, а также устанавливает разумные переменные окружения по умолчанию, которые можно легко изменить во время выполнения. Однако на самом деле репозиторий усугубляет проблему удобства использования: теперь пользователь должен клонировать репозиторий и получать обновления, чего может быть достаточно для некоторых пользователей, но я хотел добиться достаточно хорошего удобства использования приложения и возможности легко изолировать его в клетке. Поэтому я написал link:https://github.com/DtxdF/appscript[appscript], который создаёт SFX-файлы в формате ELF, и они автоматически создаются с каждым новым релизом этого репозитория благодаря GitHub workflow. Спонсор: https://www.patreon.com/appjail // // The FreeBSD Russian Documentation Project // // Original EN revision (18.04.2026): a5bfce1d601b0f0084587f32081dad7cb652cb50 //