wenus

C# 学习的点点滴滴

博客园 首页 新随笔 联系 订阅 管理
Display Manager三兄弟

X-Window下的Display Manager,可以在系统启动时自动进入图形化登录管理。现在算起来有三个,XDM、KDM和GDM。我称它们为DM三兄弟,但事实上这三兄弟的长相可一点都不相像。老大XDM虽然丑了一点,但比较随和,一叫它就来;老二KDM长得比较标准,脾气和老大差不多;老三GDM相貌出众,总是一付很Cool的样子,不爱搭理人,但遇到狠的,也就老实了。让我们一同来认识一下FreeBSD 5.1家的这DM三兄弟吧。

0. 前言
我拿到了FreeBSD 5.1后,就赶紧安装了起来。5.1版本的兼容性和硬件支持确实不错,在我的计算机上很顺利地就安装好了。
由于我是准备把FreeBSD用作开发工作站,图形化的界面自然会比较容易使用一些。我安装X-Window底层支持,和KDE、GNOME这两大窗口管理器。通过设置“.xinitrc”文件,也能够在KDE和GNOME之间换来换去。但是总感觉不那么自然和彻底。看过了Linux发行版的窗口界面,知道了Display Manager,这才开始认识了DM三兄弟。如果你已经安装了X-Server、KDE和GNOME,它们就已经在你的系统里了。没有的话,…。

1. XDM
前面说了,老大XDM比较随和。我们可以修改/etc/ttys文件,将下面的一行:
代码:
ttyv8   "/usr/X11R6/bin/xdm -nodaemon"  xterm   off secure
中的off改为on。
代码:
ttyv8   "/usr/X11R6/bin/xdm -nodaemon"  xterm   on  secure
重新启动系统,就会自动进入XDM,输入账号和密码,就会进入你原来设置好的KDE或GNOME桌面了。
XDM确实够丑的,相信没有人想多看两眼的。裁判,换人!

2. KDM
为了老二KDM能够出场,我再次修改/etc/ttys文件。还是那一行,这次改为:
代码:
ttyv8   "/usr/local/bin/kdm -nodaemon"  xterm   on  secure
要让KDM自动在KDE和GNOME中切换,还要修改文件“/usr/X11R6/lib/X11/xdm/Xsession”。把中间的这段文字,
代码:
case $# in
1)
        case $1 in
        failsafe)
                exec xterm -geometry 80x24-0-0
                ;;
        esac
esac
改成这样,
代码:
case $# in
1)
        case $1 in
        kde)
                exec startkde
                ;;
        gnome)
                exec gnome-session
                ;;
        failsafe)
                exec xterm -geometry 80x24-0-0
                ;;
        esac
esac
如此目标识别已加载,让我们重新开始吧。
慢点,还有一个地方需要修改一下。用root进入KDE中,找到“Login Manager”,在“Sessions”页下的“New Type”中,“kde”项已经有了,只要增加“gnome”,顺便再调整一下顺序吧。
好了,现在再次重起系统,感觉如何?KDM还是很能干的。

3. GDM
老三GDM的大名,早有耳闻,在Linux家里也见到过,但把它请到咱FreeBSD家里来,我可是花了三个晚上,敲了无数次的门,才让它露出了真容。下面就是它提出来的条件。
第一点,GDM好钱,需要一个特别的系统的账户,据说是为了安全。
代码:
pw groupadd –g 42 –n gdm
pw useradd –c gdm –d /var/gdm –s /bin/sh –u 42 –n gdm
如此,新建了一个gdm的Group,GID是42,一个gdm的User,UID是42。GID和UID,必须是没有被系统中其它账号占用,如果已被占用,改用其它小于1000的。
第二点,GDM需要一个有安全门的单间,还得过户到它的名下。
代码:
mkdir /var/gdm
chmod 0750 /var/gdm
chown gdm:gdm /var/gdm
第三点,拉拉关系,搞好配置。这得修改“/usr/X11R6/share/gnome/gdm/gdm.conf”才行,
代码:
ServAuthDir=/usr/X11R6/share/gnome/gdm
改为:
代码:
ServAuthDir=/var/gdm
再改
代码:
Greeter=/usr/X11R6/bin/gdmlogin
为:
代码:
Greeter=/usr/X11R6/bin/gdmgreeter
另外,下面的这三行,是true还是改成false,随便你了。
代码:
ShowGnomeChooserSession=true
ShowGnomeFailsafeSession=true
ShowXtermFailsafeSession=true
gdm.conf”中的其它部分,目前还不清楚是干啥的,那就放着吧。
第四点,GNOME和KDE都要支持。GDM是从GNOME那里来的,支持GNOME没什么问题。要支持KDE的Session,就比较啰嗦一点了。用ee编辑器写一段下面的命令,
代码:
#! /bin/sh
exec /usr/X11R6/lib/X11/xdm/Xsession kde
保存为文件“/usr/X11R6/share/gnome/gdm/Sessions/Kde”,然后修改属性,
代码:
chmod –w+x /usr/X11R6/share/gnome/gdm/Sessions/Kde
“/usr/X11R6/share/gnome/gdm/Sessions”目录下的其它文件,除了Gnome和Xsession之外大可以去掉。
第五点,现在该给老三让位了。用gdm替换kdm,这又要改“/etc/ttys”中的
代码:
ttyv8   "/usr/local/bin/kdm -nodaemon"  xterm   on  secure
为:
代码:
ttyv8   "/usr/X11R6/bin/gdm -nodaemon"  xterm   on  secure

做完上面的工作,重新启动系统。终于GDM总算给了面子,揭开了那美丽的面纱,原来这GDM是她不是他,难怪难怪。忍不住要多看上几眼。

辛苦的工作,由漂亮的DM开始,心情真好!


(我在写完上面这些之后,本不想现在就发到论坛上来的。因为在多次测试后发现,从GDM进KDE还有些小问题,GDM的脾气还是有点没摸透。不过,仔细想想,还是抛砖引玉地先发上来再说,恳企哪位高人指点一二。我自己也会再尝试解决,一旦有了结果之后,会补充上来。)
posted on 2005-02-22 14:55  wenus  阅读(1376)  评论(0编辑  收藏  举报