要修改Xresources,需将Xresources 从/usr/dt/config/language 复制到 /etc/dt/config/language中。登录屏幕将在下一次显示时反应出所有更改。 强制登录屏幕重新显示,要在登录屏幕"选项"菜单中选择"复位登录屏幕"。
由Xresources文件的资源说明所决定的登录屏幕属性包括:
Dtlogin*logo*bitmapFile-显示为徽标图像的位图或象素图文件
Dtlogin*greeting*persLabelString-个人化欢迎信息
Dtlogin*greeting*labelString-前言信息
Dtlogin*greeting*fontList 前言信息的字体
Dtlogin*labelFont 按钮和标志的字体
Dtlogin*textFont 帮助及错误信息的字体
Dtlogin*language*languageName 语言环境名language的替代文本
将Dtlogin*logo*bitmapFile资源放置在Xresources中。
徽标可以是彩色象素图或位图文件。
下例使用Mylogo位图作为徽标:
Dtlogin*logo*bitmapFile: /usr/local/lib/X11/dt/bitmaps/Mylogo.bm
在缺省情况下,登录服务器在登录屏幕上显示信息前言到主机名。要更改这个信息:
将Dtlogin*greeting*labelString资源放置在Xresources中。
labelString资源的值可以包含%LocalHost%,它将被登录服务器主机名替换, 还包含 %DisplayName%, 它将被 X 服务器显示器名替换。
下面的示例将欢迎信息更改为这里是主机名!:
Dtlogin*greeting*labelString: 这里是%LocalHost% !
输入用户名后,登录服务器缺省显示信息前言用户名。将Dtlogin*greeting*persLabelString 资源放置在Xresources中,便可以更改该信息。persLabelString 的值可以 包含%s,它将被用户名替换。
下面的示例将个人化前言信息更改为您好用户名。
Dtlogin*greeting*persLabelString: 您好%s
可以通过设置Xresources:中的下列字体资源之一 更改登录屏幕上使用的字体:
Dtlogin*greeting*fontList-前言信息的字体
Dtlogin*labelFont-按钮和标签的字体
Dtlogin*textFont-帮助及错误信息的字体
要列出可用的字体,请键入:
xlsfonts [-options] [-fnpattern]
下面的示例中前言信息使用了大字体(指定的值必须包含在同一行中):
Dtlogin*greeting*fontList: -dt-interface \ system-medium-r-normal-xxl*-*-*-*-*-*-*-*-*:
要在登录屏幕"语言"菜单上显示每个语言环境文本而不是 缺省显示语言环境名,请在 Xresources中修改Dtlogin*language*languageName 资源的资源名:
Dtlogin*En_US*languageName: American
现在,将显示文本American,而不显示语言环境名En_US。
定制登录屏幕特性,可以修改Xconfig文件中指定的资源。
要修改Xconfig,需将Xconfig 从/usr/dt/config复制到/etc/dt/config 中。修改/etc/dt/config/Xconfig之后, 键入下列内容,以告知登录服务器重新读取Xconfig:
/usr/dt/bin/dtconfig -reset
这样就发布出以下命令kill-HUP登录服务器进程 ID)
Dtlogin*authorize-Xaccess 文件说明
Dtlogin*environment-X 服务器环境
Dtlogin*language-缺省语言
Dtlogin*languageList-登录屏幕"语言"菜单的语言列表
Dtlogin*resources-Xresources 说明
Dtlogin*setup-Xsetup 文件说明
Dtlogin*startup-Xstartup 文件说明
Dtlogin*session-Xsession 文件说明
Dtlogin*failsafeClient-Xfailsafe 正文说明
Dtlogin*reset-Xreset 正文说明
Dtlogin*userPath-Xsession 和Xfailsafe 的 PATH
Dtlogin*systemPath-Xsetup、Xstartup 和Xfailsafe 的 PATH
Dtlogin*systemShell-Xsetup、Xstartup 和Xfailsafe
的 SHELLDtlogin.timeZone-所有正文的 TZ
在下面的例子中,更改Xconfig资源将更改所有显示器登录屏幕的特性。以 * (星号)列出的资源可以 基于每个显示器来指定。这样就能够 为某些显示器指定定制的登录屏幕特性。要为特定显示器指定资源,需将该资源指定为 Dtlogin*displayName*resource。例如,如果要为显示器expo:0关闭基于用户的访问控制,又要为其它显示器保留访问控制,应指定:
Dtlogin*expo_0*authorize: False
显示器名中的任何特殊字符,例如 : (冒号)或 。 (句号), 被替换为 _ (下划框)。
在缺省情况下,登录服务器允许基于每个用户的 X 服务器访问控制,并且以在HomeDirectory/.Xauthority文件中存储并保护的权限数据为根据。只允许可读取该文件的用户连接 X 服务器。一般来说,这是 X 服务器访问控制的首选方法。
基于用户的访问控制的另一个备选方法是基于主机的访问控制。 使用这种方法时,如果授权主机对 X 服务器进行访问, 那么该主机上的任何用户均可以连接 X 服务器。使用基于主机的控制的原因如下:
较早的 R2 和 R3 X 客户无法用基于用户的访问控制连接 X 服务器。
在无安全保护的网络上,窥探者可能会截取网络上的 X 客户和 X 服务器之间传递的权限数据。
XconfigDtlogin*authorize 资源告知登录服务器使用基于用户的 X 服务器访问控制。要使用基于主机的访问控制, 将授权资源值更改为False,例如:
Dtlogin*authorize: False
如果在 X 服务器被登录服务器启动时,要为 X 服务器提供一个或多个环境变量和数值,可以使用 Xconfig 中的Dtlogin*environment资源来指定它们 。例如:
Dtlogin*environment: VAR1=foo VAR2=bar
将使变量VAR1和VAR2 可用于本地 X 服务器进程。这些变量还将被输出到Xsession 和Xfailsafe正文中。
当用户从登录屏幕登录到桌面时,用户会话在 从"选项"菜单的"语言"子菜单中选择的语言环境下 运行。如果用户未选择语言,则使用登录服务器的 缺省语言。可以通过设置Dtlogin*language资源, 它在Xconfig 中,来指定它们。 例如:
Dtlogin*language: Ja_JP
检查系统文档以决定在系统中安装的 语言。
在缺省情况下,登录服务器创建的登录屏幕"语言"菜单中包括 安装在系统上的所有语言环境的列表。用户从登录屏幕语言列表中选择语言环境后,登录服务器将在选定的语言环境重新显示登录屏幕。当用户随后登录时,登录服务器将以该语言环境为用户启动 桌面会话。
可以通过修改Dtlogin*languageList资源 (在Xconfig中),来指定自己的语言列表:
Dtlogin*languageList: En_US De_DE
此时,登录服务器在登录屏幕"语言"菜单中只显示En_US 和De_DE。
启动 X 服务器后及登录屏幕出现前, 登录服务器运行Xsetup 正文。Xsetup以超级用户的许可运行并发布命令,该命令需要在登录屏幕显示之前运行。
修改Xsetup,需将Xsetup 从/usr/dt/config 复制到/etc/dt/config中。下一次显示登录屏幕时, 将运行修改过的Xsetup。
在用户输入并且验证用户名和口令之后,及在启动用户会话之前,登录服务器运行Xstartup正文。Xstartup以超级用户许可运行并发布命令,该命令需要在用户会话启动之前,作为超级用户来运行。
修改Xstartup,需将Xstartup 从/usr/dt/config复制到/etc/dt/config中。用户下一次登录时, 将运行修改过的Xstartup。
在缺省情况下,登录服务器通过运行Xsession 正文来启动用户会话。Xsession在用户的许可下运行并发布启动桌面所需要的命令。
禁止直接更新Xsession正文。
关于如何定制用户桌面会话的启动,请参阅第 2 章,配置会话管理器。
如果用户从登录屏幕"选项"菜单的"会话"子菜单中选择 "故障保险过程",则登录服务器运行Xfailsafe正文。Xfailsafe以用户的许可运行并发布启动最小的窗口环境所需要的命令,该环境通常是 "终端"窗口和可选的窗口管理器。
修改Xfailsafe,需将Xfailsafe 从/usr/dt/config复制到/etc/dt/config中。用户下一次登录时,将运行修改过的Xfailsafe。
用户退出桌面或故障保险会话进程之后,登录服务器运行Xreset正文。Xreset以超级用户许可运行并发布命令,该命令需要在用户的会话结束之后作为超级用户来运行。
修改Xreset,需将Xreset 从/usr/dt/config复制到/etc/dt/config 中。用户下一次登录时,将运行修改过的Xreset。
登录服务器提供输出到Xsetup、Xstartup、Xsession、Xfailsafe 和Xreset正文的环境。表 1-1中描述了该环境。其它变量也可由登录服务器输出。
表 1-1 登录服务器环境
环境 变量 |
Xsetup |
Xstartup |
Xsession |
Xreset |
说明 |
---|---|---|---|---|---|
X |
X |
X |
X |
缺省或选定的语言 |
|
X |
X |
X |
X |
替代 X 许可文件(可选) |
|
X |
X |
X |
X |
Dtlogin*userPath资源 (Xsession、Xfailsafe) 或Dtlogin*systemPath资源 (Xsetup、Xstartup、Xreset) 的值 |
|
X |
X |
X |
X |
X 服务器连接编号 |
|
X |
X |
X |
X |
在/etc/passwd(Xsession、Xfailsafe) 或Dtlogin*systemShell资源 (Xsetup、Xstartup、Xreset) 中指定的 shell |
|
X |
X |
X |
X |
Dtlogin.timeZone资源或从系统中决定的时区值 |
|
|
X |
X |
X |
用户名 |
|
|
X |
X |
X |
在/etc/passwd中指定的起始目录 |
|
|
X |
X |
X |
用户名 |
登录服务器在运行Xsession和Xfailsafe 正文时设置 PATH 环境变量。可以为这些正文提供替代路径。
Dtlogin*userPath:/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11
Dtlogin*systemPath: /usr/bin/X11:/etc:/bin:/usr/bin:/usr/ucb
登录服务器在运行Xsetup、Xstartup 和Xfailsafe正文时设置 SHELL 环境变量。缺省值 为/bin/sh。如果要为这些正文提供替代 shell,可以设置 Dtlogin*systemShell资源,它在Xconfig 中。例如:
Dtlogin*systemShell: /bin/ksh
登录服务器在运行Xsetup、Xstartup、Xsession、Xfailsafe 和Xreset时 设置 TZ 环境变量。缺省值是从系统中派生而来的,所以通常不需要更改该特性。要为这些正文提供替代时区,需设置Dtlogin.timeZone资源, 它在Xconfig中。例如:
Dtlogin.timeZone: CST6CDT