调整控制台设置-FreeBSD 技术文摘
在FreeBSD系统中,很多设置都需要直接更改设置文件,例如系统启动脚本rc.conf,控制终端设置文件/etc/ttys等。虽然大部分很多系统的参数可以通过安装程序Sysinstall来设置,但是改动配置文件更为直接。并且对于管理员来讲,只有了解配置文件是如何控制系统的表现,才能从根本上解决在实际操作中遇到的各种问题。
-
调整控制台设置
控制台是个人用FreeBSD系统使用者最常进行操作的位置,因此应该调整控制台设置,使其最适合使用者的习惯。可以在控制台上调整显示使用的字体、键盘映射、屏幕保护、虚拟终端等设置。其中一些设置可以通过安装程序sysinstall 来进行,然而有的设置必须通过命令方式或更改配置文件来完成,而且命令行方式具有更大的灵活性。
- 虚拟终端与ttys设置
FreeBSD的控制台上有多个虚拟终端,可以在系统启动之后使用Alt键加上功能键来切换虚拟终端。系统缺省只激活四个虚拟终端,这已经满足绝大多数的需要。其中第四个虚拟终端在缺省情况下没有运行登录程序,这是因为X Server 运行时也需要一个虚拟终端,因此必须将一个没有进程占据的控制台终端留给X Window使用。
而通过更改内核的设置,FreeBSD可以支持16个虚拟终端设备,由于通常个人计算机只有F1-F12共12 个功能键,事实上只能使用12个虚拟终端。其设备文件从ttyv0到ttyv15,可以使用MAKEDEV来创建这些设备文件。为了增加虚拟终端的数量,除了更改内核设置、创建设备文件之外,还需要编辑系统文件/etc/ttys。这个文件中有下面的内容是与此相关的:
# name getty type status comments |
ttyv3对应的行的第四列为 “off” ,这说明这个终端并没有运行getty程序,不会出现登录提示。增加虚拟终端就意味着在这个文件中增加相应的设置行,例如要增加一个虚拟终端,就应该修改这个文件中的相应项为:
ttyv3 "/usr/libexec/getty Pc" cons25 on secure |
修改完这个文件之后需要重起系统,在内核支持的条件下,系统将增加一个虚拟终端。
如果用户在控制台上运行了X Window,由于X Server也需要控制Alt加功能键这样的组合键,因此控制台将这类组合键留给X Window,不再使用它们来切换到其他虚拟终端。此时切换到其他虚拟终端的热键为Ctrl 加Alt再加上相应功能键,而从其他虚拟终端切换回X Window仍然为Alt+功能键F4。这样的方式甚至不限于X Server,也适用于其他直接使用控制台、截留键盘的程序。
在/etc/ttys文件中,可以看到每个虚拟终端最后一个参数为 “secure” ,这表示这个终端位于安全可信赖的物理位置上,因此在这个终端上可以允许直接使用root帐号登录,如果将其改为 “insecure” ,那么root用户将不能在这个终端上直接登录。由于控制台为系统最基本的终端设备,一般只有管理员或其他可信赖的用户才能使用,因此对应于这些虚拟终端,设置都为 “secure” 。
这样一旦控制台的物理安全受到危害,系统安全就受到严重的影响。正由于系统信赖控制台,当系统使用单用户模式启动时,不会询问root的口令,这个设置是由ttys文件中的console项来进行控制的,可以将ttys文件中的console项中对应的 “secure” 改为 “insecure” ,就表示控制台是不能信赖的,那么系统在进入单用户状态时,将验证root的口令。在控制台的物理访问控制不能保证的情况下,这个设置虽然不能完全保证非法使用者不能进入单用户状态并获得系统的控制权,但提供了相当重要的保护能力。
ttys文件中,除了针对虚拟终端的设置之外,还对串行终端ttys0等,用于网络连接的伪终端ttyp0等,提供了设置。要增加相应终端,与控制台虚拟终端类似,除了更改系统内核、设备文件之外,还需要在ttys文件为相应设备提供入口。
- 控制台键盘设置
kbdcontrol命令就用于更改键盘设置,包括键盘的映射方式、击键的重复率等,键盘的映射文件保存在 /usr/share/syscons/keymaps/目录下,通常的标准101/102键盘可以使用us.iso.kbd文件。以下例子中使用 “-l” 参数指定键盘映射文件,使用 “-r” 参数指定键盘速度。
# kbdcontrol -l /usr/share/syscons/keymaps/us.iso.kbd |
除了可以用fast来表示键盘速度之外,还可以精确指定键盘击键的间隔和重复时间,例如fast模式就等同于 250.34,表示击键间隔为250ms,重复时间为34ms,normal模式对应于500.126,slow对应于1000.504。
指定键盘映射文件的好处是可以自己定义键盘的映射方式,例如可以使用更改键盘配置文件的方法来屏蔽Ctrl-Alt-Del 热键,就可以使用编辑器打开us.iso.kbd文件,将Ctrl-Alt-Del对应的功能由boo t改为nop,表示输入这个击键序列时不进行任何操作。或者可以为boot功能定义其他组合键。
- 控制台显示设置
控制台的字体文件均保存在/usr/share/syscons/fonts目录下,通常使用的字体有8x8大小、8x14大小和8x16大小,可以指定使用那些字体文件作为系统使用的这些大小的字体。将这些字体文件载入需要使用vidcontrol命令:
# vidcontrol -f 8x8 /usr/share/syscons/fonts/cp437-8x8.fnt |
其中cp437指的是字体代码页为437,这是英文编码,中文编码为Code Page 936(GB)。由于中文为双字节文字,控制台驱动程序处理起来比较困难,还没有对应中文编码的控制台字体文件。
vidcont

