XFree86
XDM
XDM является наиболее общим способом войти в систему через графический
терминал. Это немного напоминает вход в систему, но внутренне полностью
отличается.
В каталоге /etc/X11/xdm имеются конфигурационные файлы, которые выполняются
на различных фазах входа в систему. Xstartup (и Xstartup_0 специально для
screen 0) содержат команды, запускаемые после входа пользователем в систему
(команды выполняются под root'ом).
Путь, который установлен для пользователей, находится в /etc/X11/xdm/xdm-config. Имеются строки:
DisplayManager*userPath: /usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
DisplayManager*systemPath: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11 |
Это будет путь по умолчанию для нормальных пользователей и для root соответственно. Это очень важно, что /usr/bin/X11 является доступным для пользователей X. Если пользователь X входит на другую машину, чтобы запустить X приложения, он должен добраться до /usr/bin/X11.
После запуска Xstartup XDM запускает /etc/X11/Xsession, которая работает
с конечным пользователем. Локальная конфигурация, как предполагается, будет
сделана в /etc/environment, это исходит от Xsession, если доступно (Xsession
выполнен с /bin/sh, и, таким ,образом /etc/environment должен быть sh
файлом). Это конфликтует с ssh, предполагающим, что /etc/environment - файл,
содержащий строки вида VAR=VALUE.
xterm -ls
По умолчанию путь для всех команд, вызываемых из диспетчера X window,
наследуется от XDM. Использование чего-то отличного от этого должно быть
установлено явно. Чтобы запустить эмуляцию терминала с "нормальными" путями,
нужно использовать специальную опцию. В xterm опция -ls (login shell)
должна использоваться, чтобы получить пути определенные в скриптах
инициализации оболочки.
Window manager
Window manager наследует окружение XDM. Все программы запущеные window manager'ом наследуют окружение window manager'а.
Окружение оболочки пользователя не затрагивает программы, запускаемые из
window manager'а. Например, если программа запускается от 'xterm -ls', она
имеет заданную по умолчанию среду при входе в систему, но если она
запускается из меню, то имеет только окружение window manager'а.