Можно ли создать приложение с графическим интерфейсом, где пользователь может взаимодействовать с ним, но не может переключиться на любую другую программу (терминал, рабочий стол и т. Д.). Примером таких приложений может быть что-то, работающее в общедоступном киоске, где вы хотите, чтобы пользователь мог использовать ваше приложение, но не связываться с компьютером каким-либо другим способом.
Если это не совсем возможно, насколько «сложнее» пользователю сделать переключение приложения и нанести какой-либо потенциальный ущерб системе?
PS: Я в порядке с запуском программа под отдельной учетной записью пользователя, chroot и т. д. при необходимости.
Вы могли запустить X-сервер без менеджера окон (или специально настроенный легкий) выполняющий только Ваше приложение. Этот пример будет использовать xterm
, замените его своим приложением.
Чтобы сделать это, создайте файл ~/.xinitrc
и добавьте что-то вроде этого:
exec xterm
Теперь зарегистрируйте на пути TTY и введите следующую команду:
startx
Это должно запустить X-сервер с только xterm
выполнение.
Можно также отключить переключение на TTY путем добавления следующего к Вашему xorg.conf
:
Section "ServerFlags"
Option "DontVTSwitch" "true"
EndSection
Манипулирование этими строками посадит Вас, где Вы хотите быть.
При необходимости в менеджере окон OpenBox мог бы быть хорошим выбором, так как это чрезвычайно настраивается (можно удалить все ярлыки стандартной клавиатуры, такие как ALT+F4, и т.д.),
Для использования OpenBox установите его с sudo apt-get install openbox
и помещенный exec openbox-session
в Вашем ~/.xinitrc
, затем добавьте свое приложение на ~/.config/openbox/autostart
.
Существует режим Kiosk для WebKit узла , который идет полный экран после запусков программы , НО для Linux это может быть обойдено с Alt-F4
сочетание клавиш, которое обрабатывается на системном уровне. Библиотека заявляет, что иначе программа была бы воспринята как потенциальный вирус:
На Linux и Windows, пользователи могут все еще выйти из WebKit узла путем нажатия клавиш как Высокий звук + F4 и Управление + Высокий звук + Del, в настоящее время WebKit узла не блокирует те ключи быть, потому что это заставило бы WebKit узла вести себя как вирус и быть заблокированным программным обеспечением AV.