Состояние: 1 суперпользователь, 1 киоск-пользователь. Суперпользователь имеет root-доступ. Киоск-пользователю мы хотим иметь доступ только к 2 приложениям, но не одновременно. Для каждого приложения создано 2 рабочих стола gnome.
Сценарий: пользователь киоска входит в систему с выбранного рабочего стола, и приложение открывается в полноэкранном режиме. Киоск-пользователь закрывает приложение, скрипт заставляет спать для X, а затем снова открывает приложение. Это режим киоска.
Желаемый эффект: пользователь киоска закрывает приложение, которое вынуждает выйти из системы. Затем суперпользователь получает доступ, или пользователь-киоск выбирает второй рабочий стол gnome для приложения №2 в режиме киоска.
Возможно?
Вы можете настроить сеансы LightDM, поместив файлы рабочего стола в / usr / share / xsessions. Например, создать файл /usr/share/xsessions/app1.desktop:
[Desktop Entry]
Name=Application 1
Exec=/path/to/app1
Аналогично создать файл /usr/share/xsessions/app2.desktop:
[Desktop Entry]
Name=Application 2
Exec=/path/to/app2
Это две ваши сессии приложений.
Я предполагаю, что ваш суперпользователь будет использовать обычную сессию рабочего стола Ubuntu. Я не думаю, что вы можете настроить LightDM для ограничения доступа к этому сеансу для пользователя с правами администратора, но вы должны иметь возможность добавить сценарий сеанса X, который прерывает запуск сеанса, если пользователь киоска пытается получить к нему доступ. Попробуйте создать /etc/X11/Xsession.d/00-check-user со следующим содержимым:
if [ "$LOGNAME" = "kiosk" -a "$DESKTOP_SESSION" = "ubuntu" ]; then
errormsg "user not allowed to access ubuntu session"
fi
Вы также захотите удалить ненужные сеансы из / usr / share / xsessions, так как они могут не запустить полный набор сценариев Xsession и, следовательно, может предоставить нежелательный доступ пользователю киоска.
Надеюсь, это поможет.