Автологін в Linux і Kiosk Mode
Іноді буває необхідно створити додаток, що працює в повноекранному режимі і не дозволяє користувачеві закривати основне додаток, виходити з графічного середовища, перелогініться під іншим користувачем, вимикати або перезавантажувати комп'ютер. Наприклад як довідкові кіоски, платіжні термінали або інформаційне табло. Таке завдання найпростіше реалізувати на веб додатку і браузері.
Для виконання завдання необхідно, щоб запускалася графічне середовище, а в ній відразу потрібно отримати доступ. Користувач повинен починати роботу відразу, без всяких процедур авторизації і ін. При цьому користувач повинен мати можливість працювати тільки з даними додатком, ну, можливо, воно дозволяє запускати якісь інші програми, але тільки строго за списком.
Для початку відключимо деякі функції Х-сервера, такі як сплячий режим і скрінсейвер, створюємо файл /etc/X11/xorg.conf.d/10-dpms.conf наступного змісту:
Section "ServerFlags" Option "blank time" "0" Option "standby time" "0" Option "suspend time" "0" Option "off time" "0" EndSectionТепер налаштуємо автоматичний вхід в систему, а після запуск браузера в режимі кіоску з необхідними параметрами.
Автовходу GDM і запуск браузера в кіоску
Для настройки автоматичного входу в систему, необхідно внести записи в настроювальний файл /etc/gdm/custom.conf. У ньому є секція [daemon], яка спочатку порожня. Внесемо в неї зміни:
[Daemon] AutomaticLoginEnable = true AutomaticLogin = user- де user, користувач який буде автоматичний входити в систему.
Тепер налаштуємо автоматичний запуск браузера в режимі кіоск на прикладі Opera версії 11.64 (різні версії опери можна скачати тут ).
Для цього наводимо файл / etc / gdm / Xsession до наступного огляду
#! / Bin / bash. / Etc / X11 / xinit / xinitrc-common / usr / bin / opera \ -kioskmode \ -nosession \ -nosplash \ -nomail \ -nosave \ -nomenu \ -nodownload \ -nocontextmenu \ -nochangebuttons \ -resetonexit \ -geometry 1280x1024 + 0 + 0 \ http://hostadmina.ruПісля перезавантаження користувач автоматичний авторизується в системі і браузер запуститься в повно екраном режимі.
Автовходу Systemd і запуск браузера в кіоску
Створюємо новий сервіс аналогічний getty @ .service:
cp /lib/systemd/system/[email protected] /etc/systemd/system/[email protected] ln -s /etc/systemd/system/[email protected] /etc/systemd/system/getty.target.wants/ [email protected]- де tty7, номер віртуальної консолі під якою виконаємо автовходу.
Редагуємо наступні рядки файлу [email protected], наприклад:
[Service] ... ExecStart = - / sbin / agetty --autologin user --noclear% I Restart = always ... Alias=getty.target.wants/[email protected]- де user, користувач який буде автоматичний входити в систему.
Перезапускаємо конфігурацію менеджера systemd і запускаємо службу наступними командами:
systemctl daemon-reload systemctl start [email protected]Тепер налаштуємо автоматичний запуск браузера в режимі кіоск, візьмемо для прикладу інший браузер, припустимо Firefox, для нього необхідно поставити доповнення m-kiosk або r-kiosk.
Після цього необхідно додати в кінець файлу /home/user/.bash_profile наступний рядок:
xinit - -nocursor -nolisten tcp vt7І створити файл /home/user/.xinitrc наступного змісту:
/ Usr / bin / metacity & watch / usr / bin / firefox http://hostadmina.ruПерезавантажуємо або перезапускаємо systemd і службу [email protected], також можна виконати killall xinit і під користувачем user в 7 терміналі запустити Х-сервер командою xinit.