Найти в Дзене

Fly-dialog в Astra Linux: Создание графических интерфейсов

Astra Linux Special Edition (SE) представляет собой защищённую операционную систему, разработанную для работы с конфиденциальной информацией. Ключевой особенностью является строгая модель безопасности, включающая мандатный контроль целостности (MCS), контроль доступа на основе ролей (RBAC) и изоляцию сессий. В таких условиях традиционные инструменты для создания графических интерфейсов, такие как zenity или kdialog, не подходят из-за несоответствия требованиям безопасности. Для решения этой проблемы в Astra Linux SE разработана утилита fly-dialog, интегрированная в архитектуру защищённой операционной системы. Она позволяет создавать безопасные графические интерфейсы в shell-скриптах, обеспечивая соответствие строгим требованиям безопасности и надёжности. Fly-dialog — это инструмент, разработанный компанией РУСБИТ, специально для использования в Astra Linux SE. Он основан на фреймворке Qt, что обеспечивает высокую производительность и безопасность. Утилита поддерживает широкий спектр ди
Оглавление

Astra Linux Special Edition (SE) представляет собой защищённую операционную систему, разработанную для работы с конфиденциальной информацией. Ключевой особенностью является строгая модель безопасности, включающая мандатный контроль целостности (MCS), контроль доступа на основе ролей (RBAC) и изоляцию сессий. В таких условиях традиционные инструменты для создания графических интерфейсов, такие как zenity или kdialog, не подходят из-за несоответствия требованиям безопасности.

Для решения этой проблемы в Astra Linux SE разработана утилита fly-dialog, интегрированная в архитектуру защищённой операционной системы. Она позволяет создавать безопасные графические интерфейсы в shell-скриптах, обеспечивая соответствие строгим требованиям безопасности и надёжности.

Fly-dialog: Основные характеристики

Fly-dialog — это инструмент, разработанный компанией РУСБИТ, специально для использования в Astra Linux SE. Он основан на фреймворке Qt, что обеспечивает высокую производительность и безопасность. Утилита поддерживает широкий спектр диалоговых окон, включая информационные сообщения, ввод паролей, выбор файлов и каталогов, а также отображение прогресса выполнения операций.

Поддерживаемые типы диалогов

Fly-dialog поддерживает широкий спектр типов диалоговых окон, что позволяет решать различные задачи:

  • Информационное сообщение:
--msgbox — простое сообщение.
--warningyesno, --warningyesnocancel — предупреждение с кнопками выбора.
--error — сообщение об ошибке.
  • Ввод данных:
--inputbox, --password — поля для ввода текста и паролей.
--loginpassword, --preloginpassword — формы для ввода логина и пароля.
--textbox — отображение содержимого файла.
--textinputbox — многострочное текстовое поле.
  • Выбор данных:
--combobox, --menu — выпадающий список или меню.
--checklist, --radiolist — списки с возможностью одиночного или множественного выбора.
--getopenfilename, getsavefilename — выбор существующего или нового файла.
--getexistingdirectory — выбор каталога.
--getcolor — выбор цвета.
  • Прогресс выполнения операций:
--progressbar — индикатор выполнения длительной задачи.
  • Уведомления:
--passivepopup — кратковременное всплывающее сообщение.

Каждый из этих типов диалогов можно настроить, используя дополнительные параметры, такие как заголовок, иконка, геометрия окна и стили оформления.

Примеры использования

Простое сообщение

Для вывода информационного сообщения используется команда:

fly-dialog --msgbox "Операция завершена успешно."

Подтверждение действия

Для подтверждения действия используется диалог с кнопками выбора:

fly-dialog --yesno "Вы уверены, что хотите перезагрузить систему?"

Код возврата:

  • 0 — «Да»
  • 1 — «Нет»

Ввод пароля

Для ввода пароля используется:

fly-dialog --password "Введите пароль для доступа к защищённому разделу:"

Выбор каталога

Для выбора каталога используется:

fly-dialog --getexistingdirectory /home/user

Работа с прогресс-баром

Диалог с прогресс-баром позволяет визуализировать выполнение длительных задач. Он работает через D-Bus, что позволяет управлять прогрессом из внешнего скрипта.

Пример скрипта для управления прогрессом

Создайте скрипт fly-dialog-progressbar.sh:

#!/bin/sh
# Считываем D-Bus-путь из стандартного потока
read line
dbusRef=$line
# Показываем кнопку отмены
qdbus $dbusRef showCancelButton "true"
# Шаг 1
sleep 1
qdbus $dbusRef Set ru.rusbitech.flydialog.ProgressDialog value 1
qdbus $dbusRef setLabelText "Анализ системы..."
# Шаг 2
sleep 2
qdbus $dbusRef Set ru.rusbitech.flydialog.ProgressDialog value 2
qdbus $dbusRef setLabelText "Проверка целостности..."
# Шаг 3
sleep 2
qdbus $dbusRef Set ru.rusbitech.flydialog.ProgressDialog value 3
qdbus $dbusRef setLabelText "Применение обновлений..."
# Завершение
sleep 1
qdbus $dbusRef ru.rusbitech.flydialog.ProgressDialog.close

Запуск диалога с прогресс-баром

Запустите диалог с прогресс-баром, передав управление скрипту:

fly-dialog --progressbar "Подготовка к обновлению..." 6 | ./fly-dialog-progressbar.sh

Параметр 6 указывает на общее количество шагов. Значение прогресса изменяется от 0 до этого числа. Вместо команд sleep можно выполнять полезные действия, такие как шифрование, копирование файлов или проверка подписей.

Дополнительные возможности

Fly-dialog предоставляет ряд дополнительных возможностей:

--embed <winid>: встраивание диалога в родительское окно.
--withoutbuttons: удаление кнопок из информационных диалогов.
--separate-output: построчный вывод при множественном выборе.
  • Поддержка Qt-параметров: настройка стилей, шрифтов и геометрии окна.

Безопасность и соответствие стандартам

Fly-dialog разработана с учётом требований ФСТЭК России и ФСБ. Она не использует сторонние компоненты, которые могут нарушить модель доверия. Утилита работает в рамках доверенной графической подсистемы Astra Linux SE, что делает её единственным рекомендованным инструментом для создания графических интерфейсов в защищённых системах.

Заключение

Fly-dialog — это мощный инструмент, необходимый для создания безопасных и профессиональных графических интерфейсов в Astra Linux SE. Освоив его возможности, вы сможете разрабатывать надёжные скрипты с графическим интерфейсом, соответствующие высоким требованиям к безопасности.