X 显示管理器(XDM) 是 X Window 系统用于管理登录会话的一个可选组件。 可用于 小型“X 终端”、 桌面和大型网络显示服务器。 既然 X Window 系统不受网络和协议的限制, 那对于通过网络连接起来的运行 X 客户端和服务器端的不同机器, 就会有很多的可配置项。 XDM 提供了一个图形用户界面, 让用户选择要连接到哪个显示服务器, 只需输入如登录用户名和密码这样的验证信息。
您也可以把 XDM 想象成与 getty(8) (详见:Section 25.3.2, “配置”)一样的工具。 为用户提供了同样功能。 它可以完成系统的登录任务, 然后为用户运行一个会话管理器 (通常是一个 X 视窗管理器)。 接下来 XDM 就等待这个程序退出, 等用户发出登录结束信号, 退出到登录界面。 这时, XDM 就开始为下一个用户的登录提供图像选择界面了。
如果希望使用 XDM 来管理启动, 就必须安装 x11/xdm 这个
port (在新版 Xorg 中它并不是默认安装的)。
XDM 守护程序位于 /usr/local/bin/xdm
。
任何时候都可以以 root
用户的身份来运行它,
用于管理本地系统的 X 显示。 如果希望 XDM 随机启动,
比较简便的做法是把它写到 /etc/ttys
配置中。
有关这个文件的具体格式和使用方法, 请参阅 Section 25.3.2.1, “添加一个记录到/etc/ttys
” 。
在默认的 /etc/ttys
文件, 已经包含了在虚拟终端上运行 XDM 服务的示例:
ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure
默认情况下, 这个记录是关闭的, 要启用它, 您需要把第5部分的 off
改为 on
,
然后按照 Section 25.3.2.2, “重新读取/etc/ttys
来强制init
” 的指导来重启 init(8) 服务。第一个字段显示虚拟终端名称是 ttyv8
。
这意味着 XDM 将运行在第9个虚拟终端上。
XDM 的配置文件位于 /usr/local/lib/X11/xdm
目录中。
里面的配置文件可以改变 XDM 行为和外观。您可以找到以下文件:
文件 | 描述 |
---|---|
Xaccess | 客户端认证规则。 |
Xresources | 默认的X资源值。 |
Xservers | 远程和本地显示管理列表。 |
Xsession | 用于登录的默认的会话脚本。 |
Xsetup_ * | 登录之前用于加载应用程序的脚本。 |
xdm-config | 运行在这台机器上的所有显示的全局配置。 |
xdm-errors | 服务器程序产生的错误。 |
xdm-pid | 当前运行的 XDM 的PID。 |
当 XDM 运行时, 这个目录中有几个脚本和程序可以用来设置桌面。 在这里简要的介绍下这些文件的简单用法。 这些文件更详细的语法和用法请参照 xdm(1) 。
默认配置下登陆界面是一个简单的矩形窗口, 上面有计算机的名称、 “Login:” 和 “Password:” 。 提示下, 如果你想美化一下 XDM 登陆界面, 这是一个很好的开始。
用以连接到由 XDM 所控制的显示设备的协议, 叫做 X 显示管理器连接协议 (XDMCP)。
这个文件是一组用以控制来自远程计算机的 XDMCP 连接的规则。 除非您修改了 xdm-config
使其接受远程连接,
否则其内容将被忽略。 默认情况下, 它不允许来自任何客户端的连接。
在显示选择者或登录接口之前, 这些将被自动运行。 这是一个每个显示都要用到的脚本, 叫做 Xsetup_
,
后面会跟一个本地显示的数字( 比如 Xsetup_0
)。 典型的,这些脚本将在后台 (如 xconsole
)运行一个或两个程序。
为了让其他客户端能链接到显示服务器, 您必须编辑访问控制规则, 并启用端口监听。 默认情况下,
这些设置比较保守值。 要让 XDM 能监听到连接请求,首先要注销掉 xdm-config
中的一行内容:
! 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
然后重启 XDM 。 切记默认程序配置注释以 “!” 开头
而不是一般情况使用的 “#” 。您需要设置严格的访问控制? ── 看看在 Xaccess
里的实例,
并参考 xdm(1) 联机手册, 以了解更多细节。
本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
如果对于FreeBSD有问题,请先阅读
文档,如不能解决再联系
<questions@FreeBSD.org>.
关于本文档的问题请发信联系
<doc@FreeBSD.org>.