Pull to refresh

Comments 26

PinnedPinned comments
#!/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, так расскажите о нем и дайте готовое решение!

Это только улучшить возможности пользователей и даст выбор вариантов удобных

Мне просто хотелось понять причины выбора ОС. Насколько я понял, это просто требование организации

Изначально моя первая организация купила этот дистрибутив.

А все мои проекты писались под нее и долго лежали в опен-сорсе на гитфлике.

Сейчас решил поделиться на Хабре всем, чему научился и что делал сам.

Вдруг будет полезно кому-либо, а возможно я получу советы !

есть вариант для винды:

  1. автологин

  2. шеллом назначается нужное приложение

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

дайте готовое решение!

7000 руб/час с обучением. минималка тоже 7000 руб.

Это только улучшить возможности пользователей и даст выбор вариантов удобных

если проблемы с русским языком то наценка за использование английского 50%.

Суть статьи импортозамещение, зачем на винда и реклама ваших услуг?

Я сделал все бесплатно и для людей, вы еще пишите цену? Лол

Суть статьи импортозамещение,

суть импортозащемления - возня с вторичным продуктом за неадекватные деньги.

Я сделал все бесплатно

знаете что делали со штрейкбрехерами ?

Знаете что такое помощь людям?

Опенсорс?

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

А работа и зп у меня и так есть

Разве этот код не вылетает по переполнению стека?

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

обновленный код, сейчас обновлю и в статье

Sign up to leave a comment.

Articles