Содержание

Ключевые слова: Х-терминал, linux, LTSP, Linux Terminal Server Project, терминальный linux-сервер, бездисковая станция, ПК без жесткого диска, использование старых компьютеров, diskless workstation, thin client, asplinux, использование Linux в офисе, X-terminal

Настройка диспетчера экрана XDM

Диспетчер экрана XMD – это старейший из себе подобных в рамках проекта X-Windows. Он существовал еще до появления сред Gnome и KDE, которые пришли со своими аналогичными разработками, поэтому начнем описание конфигурации именно с него.

Для настройки менеджера дисплея xdm проектом LTSP используется файл /etc/X11/xdm/xdm-config, содержимое которого представлено ниже:

! $XConsortium: xdm-conf.cpp /main/3 1996/01/15 15:17:26 gildea $
! $XFree86: xc/programs/xdm/config/xdm-conf.cpp,v 1.6 2000/01/31 19:33:43 dawes Exp $
DisplayManager.errorLogFile:	/var/log/xdm-errors
DisplayManager.pidFile:		/var/run/xdm-pid
DisplayManager.keyFile:		/etc/X11/xdm/xdm-keys
DisplayManager.servers:		/etc/X11/xdm/Xservers
DisplayManager.accessFile:	/etc/X11/xdm/Xaccess
DisplayManager.willing:		su nobody -c /etc/X11/xdm/Xwilling
! All displays should use authorization, but we cannot be sure
! X terminals will be configured that way, so by default
! use authorization only for local displays :0, :1, etc.
DisplayManager._0.authorize:	true
DisplayManager._1.authorize:	true
! The following three resources set up display :0 as the console.
DisplayManager._0.setup:	/etc/X11/xdm/Xsetup_0
DisplayManager._0.startup:	/etc/X11/xdm/GiveConsole
DisplayManager._0.reset:	/etc/X11/xdm/TakeConsole
!
DisplayManager*resources:	/etc/X11/xdm/Xresources
DisplayManager*session:		/etc/X11/xdm/Xsession
DisplayManager*authComplain:	false

! SECURITY: do not listen for XDMCP or Chooser requests
! Comment out this line if you want to manage X terminals with xdm
# DisplayManager.requestPort:	0
## LTS-begin ##

#
# The lines between the 'LTS-begin' and the 'LTS-end' were added
# on: Пнд Лис  1 13:32:48 EET 2004 by the ltsp installation script.
# For more information, visit the ltsp homepage
# at http://www.ltsp.org
#

DisplayManager.*.setup:     /etc/X11/xdm/Xsetup_workstation

## LTS-end ##

Так как в файле Xaccess мы разрешили удаленное подключение всем рабочим станциям, то в файле xdm-config достаточно выбрать сценарий настройки экрана ввода имени пользователя и пароля для удаленных компьютеров, им будет описанный выше Xsetup_workstation.

Настройка менеджера дисплея KDM

Среда KDE использует свой менеджер дисплея kdm, который хоть и базируется на исходном коде xdm, все же имеет часть значительных отличий. Для того, чтобы использовать в среде Х-терминалов менеджер дисплея kdm, необходимо внести изменения в файл /etc/kde/kdm/kdmrc (на самом деле это символическая ссылка на файл /etc/X11/xdm/kdmrc). Так как размер этого файла довольно большой, то приведу лишь важный фрагмент:

...
[Xdmcp]
# Whether KDM should listen to XDMCP requests. Default is true.
Enable=true
# The UDP port KDM should listen on for XDMCP requests. Don't change the 177.
#Port=177
# File with the private keys of X-terminals. Required for XDM authentication.
# Default is /usr/share/config/kdm/kdmkeys
#KeyFile=
# XDMCP access control file in the usual XDM-Xaccess format.
# Default is /usr/share/config/kdm/Xaccess
# XXX i'm planning to absorb this file into kdmrc, but i'm not sure how to
# do this best.
Xaccess=/usr/share/config/kdm/Xaccess
# Number of seconds to wait for display to respond after the user has
# selected a host from the chooser. Default is 15.
#ChoiceTimeout=10
# Strip domain name from remote display names if it is equal to the local
# domain. Default is true
#RemoveDomainname=false
# Use the numeric IP address of the incoming connection instead of the
# host name. Use this on multihomed hosts. Default is false
#SourceAddress=true
# The program which is invoked to dynamically generate replies to XDMCP
# BroadcastQuery requests.
# By default no program is invoked and "Willing to manage" is sent.
Willing=/usr/share/config/kdm/Xwilling
...

Этот, как уже было сказано, довольно большой конфигурационный файл содержит важный раздел [Xdmcp], который отвечает за то, будет ли слушать и принимать менеджер дисплея kdm XDMCP-запросы от удаленных рабочих станций. В оригинальном файле /etc/kde/kdm/kdmrc достаточно поменять значение “Enable=false” на “Enable=true”, чтобы все заработало. В этом же файле для управления доступом к Х-серверу используется файл Xaccess=/usr/share/config/kdm/Xaccess. На первый взгляд может показаться, что это новый файл, но на самом деле это символическая ссылка на уже известный нам /etc/X11/xdm/Xaccess, хотя проверить лишний раз не помешает:

$ ls -l /usr/share/config/kdm/Xaccess
lrwxrwxrwx    1 root     root           21 Feb 15 17:28 /usr/share/config/kdm/Xaccess -> ../../X11/xdm/Xaccess

Настройка менеджера дисплея GDM

Менеджер дисплея gdm разработан в рамках проекта Gnome. Он не базируется на исходном коде xdm, и написан практически с нуля. Для того, чтобы настроить этот менеджер дисплея, вам нужно отредактировать файл /etc/X11/gdm/gdm.conf. Так, при настройке сервера Х-терминалов в рамках проекта LTSP 3.0 предлагается такая его редакция (фрагмент файла):

...
# XDMCP is the protocol that allows remote login.  If you want to log into
# gdm remotely (I'd never turn this on on open network, use ssh for such
# remote usage that).  You can then run X with -query  to log in,
# or -indirect  to run a chooser.  Look for the 'Terminal' server
# type at the bottom of this config file.
[xdmcp]
# Distributions: Ship with this off.  It is never a safe thing to leave
# out on the net.  Alternatively you can set up /etc/hosts.allow and
# /etc/hosts.deny to only allow say local access.
Enable=true
# Honour indirect queries, we run a chooser for these, and then redirect
# the user to the chosen host.  Otherwise we just log the user in locally.
HonorIndirect=true
# Maximum pending requests
MaxPending=4
MaxPendingIndirect=4
# Maximum open XDMCP sessions at any point in time
MaxSessions=16
# Maximum wait times
MaxWait=15
MaxWaitIndirect=15
# How many times can a person log in from a single host.  Usually better to
# keep at 1 to fend off DoS attacks by running many logins from a single
# host
DisplaysPerHost=1
# The port.  177 is the standard port so better keep it that way
Port=177
# Willing script, none is shipped and by default we'll send
# hostname system id.  But if you supply something here, the
# output of this script will be sent as status of this host so that
# the chooser can display it.  You could for example send load,
# or mail details for some user, or some such.
Willing=/etc/X11/gdm/Xwilling
...

Как и в случае с менеджером дисплея kdm, в файле /etc/X11/gdm/gdm.conf нас в первую очередь интересует раздел [xdmcp]. Самое главное в этом разделе – разрешить обработку XDMCP-запросов (Enable=true). Также следует обратить внимание на еще два важных параметра этого раздела:

MaxSessions=16– определяет максимальное количество пользователей, которые могут подключаться к Х-серверу через XDMCP-запросы. Этот параметр необходимо будет изменить при увеличении количества Х-терминалов в вашей локальной сети (в данном примере, таких Х-терминалов не больше 16);

DisplaysPerHost=1– этот параметр определяет, сколько раз к менеджеру дисплея gdm можно подключаться с одного хоста (узла сети) одновременно. Сейчас он установлен в 1, из соображений безопасности и для борьбы с DoS атаками на ваш сервер, но не всегда это значение целесообразно. Например, при повторном подключении одного и того же Х-терминала могут возникнуть проблемы, так как система посчитает, что пользователь уже подсоединен. Причиной такого поведения системы могут служит программы демоны, которые продолжают работать на сервере от имени пользователя даже после того, как последний давно выключил свой Х-терминал. Лично я рекомендовал бы установить значение DisplaysPerHost равным 2, хотя можно работать и со значением по умолчанию.

Кроме ручного редактирования файла /etc/X11/gdm/gdm.conf можно воспользоваться также программой gdmsetup, которая в диалоговой форме позволяет настраивать основные параметры работы этого менеджера дисплея. Запускается эта программа так:

# /usr/sbin/gdmsetup

Для того, чтобы при запуске менеджера дисплея gdm появлялся фон с логотипом LTSP, нужно заменить файл /etc/X11/gdm/Init/Default символической ссылкой на /etc/X11/ xdm/Xsetup_workstation. Делается это так:

# ln -s ../../xdm/Xsetup_workstation /etc/X11/gdm/Init/Default

В принципе, в этот же файл можно поместить и другие команды, которые потребуются для инициализации менеджера дисплея gdm.

На рис. 6.5 вы можете увидеть графическую заставку экрана ввода имени пользователя и пароля, которую предоставляет менеджер дисплея gdm.

Рис. 6.5. Графический экран входа в систему менеджера дисплея GDM

Пока интересно, читаем дальше!

Авторское право © Сеник Николай, 2004-2006