Итак, что нужно: чтобы запускалась графическая среда, в ней сразу нужное приложение. Пользователь должен начинать работу сразу, без всяких процедур авторизации и пр. При этом пользователь должен иметь возможность работать только с данным приложением, ну, возможно, оно разрешает запускать какие-то другие программы, но только строго по списку. Пользователь не должен иметь возможности закрыть основное приложение, выйти из графической среды, перелогиниться под другой учетной записью, выключить/перезагрузить компьютер.
Где это нужно - думаю, понятно. Устройства вроде банкоматов, компьютеры общественного пользования, компьютерные клубы. Иногда возникает желание такое сделать дома для компьютерно неграмотной родни - чтобы ничего не напортачили.
Конечно, для надежности нужны некоторые действия с аппаратной частью. Приводы CD/DVD (и floppy) убираются, разъемы usb/firewire на передней панели отключаются от материнки, кнопки reset и power также отключаются от материнки. Системник опломбируется. Только это все надо делать _после_ возни с программной частью - ато ребут в случае чего будет проблемой ;)
С программной частью так. Для автовхода в систему используем GDM (можно kdm/xdm, но они хуже настраиваются) - в настройках (gksudo gdmsetup) включаем Auto login или Timed login, на усмотрение. На вкладке "Пользователи" разрешаем вход только нужным пользователям (чаще всего - только одному; прав у него, конечно, самый минимум). На вкладке "Локальный вход" снимаем галочку "Показывать меню действий". На вкладке "Общие" включаем галочку "Перезапускать XServer..." и указываем нужный сеанс по умолчанию (мы его сейчас создадим, пока что выберите там что угодно).
Создаем файл /usr/share/xsessions/kiosk.desktop (имя любое):
[Desktop Entry]
Encoding=UTF-8
Name=Kiosk mode
Comment=Kiosk mode
Exec=/usr/local/bin/kiosk-session
Type=Application
Теперь опять запускаем gdmsetup и указываем Kiosk mode в качестве сеанса по умолчанию.
/usr/local/bin/kiosk-session будет такой:
#!/bin/bash
# Это приложение не должно позволять закрыть его
самое-нужное-приложение & xpid=$!
gnome-settings-daemon & # Это если хотим использовать настройки Gnome
metacity & # Или какой вам оконный менеджер больше нравится
чего-еще-хотим-запускать-автоматом &
# Ждем завершения основного приложения, т.е. предположительно до бесконечности.
wait $xpid
(не забудьте sudo chmod +x /usr/local/bin/kiosk-session).
Теперь правим /etc/X11/xorg.conf:
Section "ServerFlags"
Option "DontZap" "True" # Запрещаем Ctrl-Alt-Backspace
Option "DontVTSwitch" "True" # Запрещаем Ctrl-Alt-F#
EndSection
Ставим openssh-server, убеждаемся что он будет стартовать автоматом и что в sshd_config стоит "X11Forwarding yes". Если нужен будет доступ по vnc, ставим x11vnc и прописываем в автозапуск (в kiosk-session).
Ну вроде всё, ребутаемся и наблюдаем результаты своих трудов ;)
Вся дальнейшая настройка - по ssh.
PS. Выбору оконного менеджера стоит уделить некоторое внимание. Дело в том, что многие WM, в том числе и из самых "простых" и "легких" (icewm, ion3, ...) имеют встроенную "командную строку", позволяющую запускать что угодно. Так что надо либо отключить это в настройках, либо выбрать WM без такой возможности (тот же metacity; Alt-F2 в Gnome обеспечивает не он, а gnome-panel).
Еще неплохо в /etc/inittab убрать или закомментировать строку "a::ctrlaltdel:/sbin/shutdown -r -t 4 now".
ОтветитьУдалитьДля полукиосков хорош icewm (да, его надо готовить правкой конфигурационного файла), а для автологина --
ОтветитьУдалитьautologin.
А чем плох для таких задач Fluxbox? Я сейчас именно на нем решаю подобныу задачу. Конфиги и меню у него хорошие - текстовые, а горячих клавиш поумолчанию нету.
ОтветитьУдалитьЗа автологин в gdm отдельное спасибо.
Да вроде ничем не плох. "Командной строки" в нем, насколько я помню, нет...
ОтветитьУдалитьВсегда пожалста ;)
Этот комментарий был удален автором.
ОтветитьУдалитьДля автологона хватит в
ОтветитьУдалить/etc/rc.local
дописать перед exit
/bin/login -f your_username
и никакой gdm/kdm.... не нужен.
Затем в ~/.bashrc
в конце добавить строку для оконного менеджера. У меня
fluxboxstart &
Вроде так часть задачи решается проще и легковеснее
А что-нибудь специализированное с компиляцией для ARM есть?
ОтветитьУдалитьСтранно, что для Buildroot не сделали (?) метапакет "Kiosk"
Добрый день! Подскажите, может кто-то в курсе. После установки Линукс Дебиан 10.3(XFCE) панель работает в режиме киоска - как снять этот режим? Спасибо. Ворой момент - прописываю в терминале команду су и в графе пароль не могу набрать ни одного символа(ни буквы ни цифры). Что за напасть такая? Заранее благодарю!
ОтветитьУдалить