Comments 26
#!/bin/bash
# Отключаем экранный режим ожидания и блокировку
xset s off
xset -dpms
# Запускаем веб-браузер в полноэкранном режиме
# Замените "http://example.com" на URL вашей веб-страницы
firefox http://example.com -kiosk &
# Получаем и сохраняем идентификатор процесса браузера
browser_pid=$!
# Функция для перезапуска страницы киоска
restart_kiosk() {
# Убиваем процесс браузера
kill $browser_pid
# Запускаем новый экземпляр веб-браузера
firefox http://example.com -kiosk &
# Обновляем идентификатор процесса браузера
browser_pid=$!
}
# Бесконечный цикл для проверки неактивного времени пользователя
while true; do
# Получаем текущее неактивное время пользователя в миллисекундах
idle_time=$(xprintidle)
# Проверяем, если время бездействия пользователя превышает 5 секунд (5000 миллисекунд)
if (( idle_time > 120000 )); then
# Вызываем функцию перезапуска страницы киоска
restart_kiosk
fi
# Задержка на 1800 секунд (30 минут) перед следующей проверкой
sleep 1800
done
обновленный код, сейчас обновлю и в статье
Офигенски. На работе не перестаю думать о том, что все фигульки от ГК Астра в одночасье рухнут, если вдруг внезапно родится требование ФСТЭК перекочевать на вяленого =DD
Ну Астра не только имеет сертификаты ФСТЭК, также есть различные указаны, о необходимости перейти на отечественное ПО.
Таким образом Астра уже в реестре ПО и может быть использована.
Далее есть уровни защищенности и сертификаты, что также добавляет возможности использовать на разных инфраструктурах и условиях.
Ну и соответственно я, как один из ребят, кто занимается улучшениям опыта работы с астрой, помогаю вкатиться новичкам, и пишу разное и интересное, чтобы люди могли быстро закрывать свои задачи
Вы не поняли, тут вопрос в том, что сейчас идёт тенденция перехода с X11 на Wayland. Готова ли Астра к такому переходу?
За разработчиков я ничего не смогу сказать увы.
Однако есть мобильная астра https://wiki.astralinux.ru/pages/viewpage.action?pageId=319132646
Ну есть возможность поставить sddm например, или кеды.
При установке sddm появиться выбор wayland как тип сессии, сохранив возможность работать и со стандартным fly-dm.
Десктоп - стандартный режим
Ну далее понятно все

Астра развивает свой интерфейс, это понятно и нужно, как я считаю. Все работа с настройками изначально делается под fly.
В 1.8. fly сильно обновился и выглядит супер. (ИМХО)
Думал, что в таком продукте, как Astra Linux Special Edition (он же платный?), судя по названию с уклоном в безопасность, используется Wayland, ведь там предусмотрена изоляция приложений.
Что будет, если браузер вдруг завершится с ошибкой вследствие каких-либо причин?
Не знаю, что там в Астре используется как система инициализации, но если бы это был просто Debian, то можно было бы создать пользовательский юнит systemd, который при перезапуске автоматически перезапускал бы браузер.
Можно и так конечно использовать и системд, накостыляв кучу всего, но зачем? Если из коробки уже есть граф.киоск?
Тут именно раскрывается суть киоска, то мы запускаем только 1 приложение на выбор.
Без данного приложения, киоск не работает, то есть если пользователь например получает разрешение на запуск только браузера, и вдруг при работе с ним он его закроет, то и сессия пользователя завершиться. И только новый вход, откроет повторно 1 разрешенное приложение и пока пользователь его не закроет, он сможет работать.
А так как у нас настроен автовход, то получаем ситуацию:
1. Почему-то крашиться скрипт;
2. Происходит автоматический выход из сессии пользователя;
3. И киоск висит на этапе входа
P.S. на старом месте работы ( в вузе), данный киоск был настроен 1 раз, прописаны в /etc/hosts локальный айпи сайта, чтобы всегда ходить на прямую есть интернет или нет, и все.
Ни когда не ломался и не падал в ошибку скрипт, ну а браузер в скрипте закрыть нельзя, так как браузер открыт в режиме kiosk и все кнопки скрыты, а горячий клавиши не работают.
Ну соответственно и у пользователя в режиме киоск нет доступа ни к терминалу, ни к пуску и т.д.
А если пользователь выдернет провод, то админ воткнет обратно, и киоск выполнит автовход и продолжит работу.
А если пользователь выдернет провод, то админ воткнет обратно, и киоск выполнит автовход и продолжит работу.
Вот это вот пользователь не должен иметь право делать ), иначе можно подсоединить какое-нибуть MITM устройство и, возможно, как-то повлиять на систему
Ну я же говорю про радикальные кейсы.
В моем случае провод прячется за самим киоском. Как витая пара так и питание.
Но вдруг была любая перезагрузка, и киоск от этого защищен в описанном мною кейсе
Но вдруг была любая перезагрузка
Лучше встроить в киоск ИБП, чтобы избежать этого. Злоумышленник может воспользоваться моментом перезагрузки для осуществления атаки на киоск
Как?
После перезагрузки автоматический вход только под 1 пользователем и только в 1 скрипт.
Он не может ничего сделать, ну и опять же, вопрос уже к технической реализации, а это на усмотрение администратора.
Я дал лишь инструмент и объяснил как я делаю, и ка это работает
Как?
Много разных вариантов. Если нет комплексной безопасности: защищеного шифрованием диска и secureboot, пароля на биос и есть доступ к портам и железу устройства. Перезагрузка - это момент неизвестности, никто точно не может сказать что в этот момент происходило.
Это все если есть что защищать. Вот вопрос возникает для чего на киоске именно Астра специального издания а не что-то проще.
Можно использовать и бесплатную версию.
https://wiki.astralinux.ru/pages/viewpage.action?pageId=67108883
В статье можно увидеть, что поддерживается 2.12, она является бесплатной.
А так, я говорю о том, что если люди в рамках импортозамещения покупают Астру, то использовать 1 лицензию на киоск не самое дорогое решение

Не вижу смысла использовать Astra (даже бесплатную) там, где можно использовать Debian
Так я рассказал как я делал на астре. В целях импортозамещения, если у вас есть вариант под Debian, так расскажите о нем и дайте готовое решение!
Это только улучшить возможности пользователей и даст выбор вариантов удобных
Мне просто хотелось понять причины выбора ОС. Насколько я понял, это просто требование организации
есть вариант для винды:
автологин
шеллом назначается нужное приложение
если приложение допускает прогулки по файловай системе, то через политики стандартного диалога открытия файла урезается все что можно. если приложение использует не стандартный, а свой диалог открытия файла, то безопасность не гарантируется либо приложение заменить.
дайте готовое решение!
7000 руб/час с обучением. минималка тоже 7000 руб.
Это только улучшить возможности пользователей и даст выбор вариантов удобных
если проблемы с русским языком то наценка за использование английского 50%.
Суть статьи импортозамещение, зачем на винда и реклама ваших услуг?
Я сделал все бесплатно и для людей, вы еще пишите цену? Лол
Суть статьи импортозамещение,
суть импортозащемления - возня с вторичным продуктом за неадекватные деньги.
Я сделал все бесплатно
знаете что делали со штрейкбрехерами ?
Deleted
Разве этот код не вылетает по переполнению стека?
check_idle_time() {
...
check_idle_time
}
check_idle_time
2 года работает не вылетал.
Там же убивается процесс и запускается новый.
Зобми не остается
процесс самого скрипта не убивается же, так что скрипт будет подъедать память за счет рекурсии (каждая новая итерация будет выделять новый стек фрейм до переполнения), в идеале переписать на цикл (while/for)
с timeout в 30 мин может никогда и не крашнется, нужно поделить максимальный выделенный размер под программу (по дефолту вроде 8 МБ) и поделить на то, сколько памяти добавляет за полчаса
вот такой минмальный вариант
#!/bin/bash
# Функция для проверки неактивного времени пользователя
check_idle_time() {
# Получаем текущее неактивное время пользователя в миллисекундах
# idle_time=$(xprintidle)
# Проверяем, если время бездействия пользователя превышает 5 секунд (5000 миллисекунд)
# if (( idle_time > 120000 )); then
# Вызываем функцию перезапуска страницы киоска
# restart_kiosk
# fi
# Запускаем функцию снова через 1 секунду
# sleep 1800
sleep 0.001
check_idle_time
}
# Запускаем функцию проверки неактивного времени пользователя
check_idle_time
упал у меня через 53 секунды
$ time bash check.sh
Segmentation fault (core dumped)
real 0m53.987s
user 0m27.786s
sys 0m18.364s
Привет, обсудили с тобой.
Да правда, утечка есть маленькая, необходимо улучшить и while/for реально будет лучше.
#!/bin/bash
# Отключаем экранный режим ожидания и блокировку
xset s off
xset -dpms
# Запускаем веб-браузер в полноэкранном режиме
# Замените "http://example.com" на URL вашей веб-страницы
firefox http://example.com -kiosk &
# Получаем и сохраняем идентификатор процесса браузера
browser_pid=$!
# Функция для перезапуска страницы киоска
restart_kiosk() {
# Убиваем процесс браузера
kill $browser_pid
# Запускаем новый экземпляр веб-браузера
firefox http://example.com -kiosk &
# Обновляем идентификатор процесса браузера
browser_pid=$!
}
# Бесконечный цикл для проверки неактивного времени пользователя
while true; do
# Получаем текущее неактивное время пользователя в миллисекундах
idle_time=$(xprintidle)
# Проверяем, если время бездействия пользователя превышает 5 секунд (5000 миллисекунд)
if (( idle_time > 120000 )); then
# Вызываем функцию перезапуска страницы киоска
restart_kiosk
fi
# Задержка на 1800 секунд (30 минут) перед следующей проверкой
sleep 1800
done
обновленный код, сейчас обновлю и в статье
Интерактивный киоск в Astra Linux: откройте дверь в мир интерактивных возможностей