Иногда может потребоваться, чтобы пользователь имел доступ только к определенному приложению. В этом случае запуск среды рабочего стола может быть нежелательным, будь то по соображениям безопасности или для обеспечения лучшей доступности для данного приложения.
В этих случаях может потребоваться заменить рабочий стол приложением, которое запускается сразу после входа в систему.
Другие пользователи должны иметь обычный доступ к своим рабочим столам.
Сначала нам нужно определить пользовательский сеанс, который обрабатывает особый случай, когда не нужно загружать рабочий стол. Мы определим этот сеанс, создав файл custom.desktop в / usr / share / xsessions / с содержимым, подобным следующему:
[Desktop Entry]
Name=Custom
Comment=Custom Session to run ~./.xsession
Exec=/home/<username>/.xsession
X-Ubuntu-Gettext-Domain=<gnome-session-3.0>
Это скажет GDM запустить скрипт .xsession
, расположенный в ГЛАВНАЯ пользователя <username>
.
Необязательный X-Ubuntu-Gettext-Domain
необходим для правильного языкового перевода в случае, если мы позже загрузим рабочий стол Unity / GNOME (замените на gdm
в 10.04).
Этот скрипт ~ / .xsession может выглядеть так просто:
#! /bin/bash
xterm
logout
Если мы сейчас Определите, чтобы загрузить наш сеанс "Custom" во время входа данного пользователя на экране gdm, только X-Terminal будет запущен, и мы вернемся к gdm при выходе. При следующем входе в систему в качестве пользователя этот параметр будет запомнен по умолчанию.
Конечно, мы пока не можем запустить приложение, которому нужен менеджер окон, такой как GNOME. Для этого замените скрипт .xsession на что-то вроде:
#! /bin/bash
gnome-wm &
firefox
logout
Мы можем видеть, что менеджер окон GNOME теперь загружен, но нет элементов рабочего стола. Это позволяет запускать приложение (например, Firefox здесь).
Но позаботьтесь о том, что вы делаете: Если мы свернем приложение в несуществующий лоток, мы получим красивые обои для просмотра. Из-за этого очень важно включить logout
в конец скрипта, чтобы выйти из сеанса после завершения приложения. На самом деле не существует никакой другой программы, выполняющей это за вас, пока вы не добавите ее в свой скрипт. Вы намеренно заменили свой рабочий стол только Firefox (плохая идея).
Конечно, мы также сможем запустить gnome-desktop
или gnome-session
(соответственно, опции) из скрипта, но это то, что мы уже делаем по умолчанию.