Киоск с Chrome на 16,04

Как я могу установить 16.04 как основанный на Chrome "киоск"? Т.е.:

  • chrome --kiosk как единственное приложение, видимое пользователю,
  • пользователь может только нажать на то, что, показал Chrome (никакие Настройки, Единица или другие приложения или другие URL),
  • идеально пользователь максимально ограничил полномочия,
  • у пользователя есть "автовход в систему" (никакой требуемый пароль) включил,
  • администратор/суперпользователь может войти в систему с некоторым волшебным сочетанием клавиш или чем-то (например, Ctrl-Alt-F1 + вход в систему + пароль) и переключиться на "полный дружественный рабочий стол".

Основной поиск с помощью Google и другие ответы AskUbuntu приводят меня только к некоторым старым руководствам, ~14.04 или более старый, который я испытываю затруднения при применении при 16,04 из-за многих различий между дистрибутивами (systemd по сравнению со старым init, также большие изменения в графический интерфейсах пользователя, особенно для параметров настройки системы).

править: Идеально, я предпочел бы руководство console/script-based, так, чтобы я мог автоматизировать его по многим компьютерам. Но основанное на GUI руководство было бы еще лучше чем ничего.

5
задан 13 April 2017 в 05:24

2 ответа

Ниже то, что мне удалось создать в конце, сшив вместе различные фрагменты и подсказки, которые я мог найти плюс некоторое "исходное исследование" мой собственный. Я считаю это очень грубым и совершенно ужасным в местах, но мне нужно некоторое решение, и это, кажется, работает на данный момент. Пальцы скрещены...

Warning:   ОБРАТИТЕ ВНИМАНИЕ, что необходимо также рассмотреть укрепление Linux для безопасности ,
, который является абсолютно не покрыт представленным сценарием!

#!/bin/bash
if [ $# -ne 0 ]; then
    echo "USAGE: mkkiosk.sh"
    echo "Create new user 'kiosk' and configure LightDM to auto-login this user to a X session running only Chrome"
    echo "in --kiosk mode."
    exit 1
fi

set -x; set -e
date

# Try to make current user (admin/...) prefer 'ubuntu' to 'kiosk' for session type.
# TODO: currently doesn't seem to work, lightdm still suggests 'kiosk' session and requires manual clicking to change.
cat > ~/.dmrc << EOF
[Desktop]
Session=ubuntu
EOF

# Auto-create user 'kiosk'.
# http://askubuntu.com/a/321943/111779
# NOTE: auto-login is enabled later (autologin-user)
getent group kiosk || (
    sudo su -c "groupadd kiosk"
    sudo su -c "useradd kiosk -s /bin/bash -m -g kiosk"
)

# Install Chrome
# http://askubuntu.com/a/510186/111779
# TODO: somehow pin Chrome version? reportedly, cmdline flags are
# unofficial and can change; OTOH, security updates... though in kiosk, we show
# only one webpage; but admin user also may use Chrome.
grep chrome /etc/apt/sources.list.d/google-chrome.list >&/dev/null || (
    wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
        sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list'
    sudo apt-get update && sudo apt-get install -y --no-install-recommends \
        google-chrome-stable
)

# https://wiki.archlinux.org/index.php/Display_manager#Session_configuration
#
# - For Chrome flags, see:
#   - http://peter.sh/experiments/chromium-command-line-switches/
#     (via http://askubuntu.com/a/423632/111779)
# - TryExec:
#   not sure what it does, but apparently must be just binary name if present.
#   (see: https://www.virtualbox.org/svn/vbox/trunk/src/VBox/Additions/linux/lightdm-greeter/liblightdm-gobject-1.5.0/session.c)
#   TODO: test if we can remove TryExec
# - IMPORTANT NOTE: If below settings are invalid, the session may just
#   silently disappear as a choice in LightDM. You can then try to confirm this
#   by looking in /var/log/lightdm/seat0-greeter.log for message "Ignoring
#   sesion kiosk".
sudo bash -c 'cat > /usr/share/xsessions/kiosk.desktop' << EOF
[Desktop Entry]
Encoding=UTF-8
Name=Kiosk
Comment=Start a Chrome-based kiosk session
Exec=/usr/bin/google-chrome --kiosk --window-size=1281,1025 --window-position=0,0 --no-first-run --incognito --no-default-browser-check --disable-translate http://stackoverflow.com
TryExec=/usr/bin/google-chrome
Icon=google-chrome
EOF
sudo -u kiosk bash -c 'cat > ~kiosk/.dmrc' << EOF
[Desktop]
Session=kiosk
EOF
# See LightDM "help" in: /usr/share/doc/lightdm/lightdm.conf.gz
sudo bash -c 'cat > /usr/share/lightdm/lightdm.conf.d/99-kiosk.conf' << EOF
[Seat:*]
user-session=kiosk
EOF
# Setting below options in only 99-kiosk.conf doesn't seem enough (conflicts on autologin-user).
sudo bash -c 'cat > /etc/lightdm/lightdm.conf' << EOF
[Seat:*]
autologin-guest=false
autologin-user=kiosk
autologin-user-timeout=0
EOF

echo "Done."

Для возвращения к "обычному пользователю" нажмите Alt-F4 для закрытия Chrome; LightDM покажет, где можно войти к "нормальному" admin/root/... (супер-) в пользователя. Для возвращения к "киоску" работайте:

sudo killall lightdm

TODO: еще не отключил экранную заставку (или он?).
кроме того, никакая гарантия, это может стрелять от Вашего участка, съесть Вашу домашнюю работу, и т.д., и т.д.

2
ответ дан 23 November 2019 в 10:35

1) Chrome в Киоске Определяет cronjob для запуска хрома как режима киоска и запусков каждый раз, система запускается. например,//Файл: хром

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
@reboot [USER] google-chrome --kiosk --incognito [URL]

Копия этот файл к/etc/cron.d /

, С другой стороны, можно создать средство запуска (.desktop файл) с командой

google-chrome --kiosk --incognito [URL]

и скопировать это в

/ домой / [пользователь]/.config/autostart

, Это включает автоматический запуск браузера Chrome только для этого пользователя.

2) AutoLogin Открывают этот файл:

sudo vi /usr/share/lightdm/lightdm.conf.d/60-lightdm-gtk-greeter.conf

Создают, если не существует.

Затем добавляют эти строки к этому файлу.

[Seat:*]
greeter-session=lightdm-gtk-greeter
autologin-user=[USER]  

Сохранили этот файл и перезапуск. Это включает пользователю к автоматическому входу в систему. Этот пользователь имеет, конечно, ограниченные полномочия.

3) Вход в систему Суперпользователя Использование CTRL+ALT+T, это открывается, терминал

gnome-session-quit --logout --force

Затем входят в систему как суперпользователь.

0
ответ дан 23 November 2019 в 10:35

Другие вопросы по тегам:

Похожие вопросы: