配置XDM--一種Linux的圖形登入介面(轉)
配置XDM--一種Linux的圖形登入介面(轉)[@more@]本文僅做參考
本文的最近更新會放在 The Computer Underground: http://www.tcu-inc.com/mark/articles/Kickstart.html.
修改:
透過在 /etc/x11/xdm/Xservers 檔案中加入以下幾行,可以得到四個 xdm 會話,由此可以允許四個不同使用者登入。看上去好象所有精巧的素材設定只對最後一個會話起作用。不過可能很容易修正這一點,也許我會在下一篇文章中提到。
:0 A local /usr/X11R6/bin/X :0
:1 B local /usr/X11R6/bin/X :1
:2 C local /usr/X11R6/bin/X :2
:3 D local /usr/X11R6/bin/X :3
--------------------------------------------------------------------------------
資源
什麼是XDM? -- 一種圖形化的登入介面
我的配置
結論
--------------------------------------------------------------------------------
資源
Chris Carlson 在Linux公報中的文章。
man xdm
我以前寫的文稿。 這些文稿寫於1996年12月,那時我還是一個hacker(真是一種很美妙的感覺)。我想那時侯Linux公報也剛開始發行。時間過的真快,我本應當在那時侯就發表這篇文章的。
--------------------------------------------------------------------------------
什麼是XDM?
簡而言之,xdm 只不過是一種圖形化的登入介面。當你的計算機啟動的時候你可以讓你的老闆和朋友們記住你的計算機沒有那種令人厭煩的字元控制檯介面。其實它就是讓你的Linux看上去比他們原想的要“酷”一些。
理論上說,雖然這是在Redhat 6.0的環境下配置的,但對於任何Linux的distributio n,大多數配置檔案都能正常工作。 當啟動圖形登入介面的時候,Redhat 6.0 使用的是gdm,而不是xdm。雖然gdm看上去 要比xdm好的多,但我現在還不能讓gdm象我需要的方式執行。一旦我解決了一些問題,我 會再寫一篇關於gdm的簡要文章。
這裡有一些需要注意的事項 ,
如果你想要你的 xdm (或者 gdm) 在計算機啟動的時候執行,你應該確保在檔案 /etc/inittab 中的這一行
id:3:initdefault:
為
id:5:initdefault:
請注意,無論你想做什麼,都必須在你設定啟動時執行 xdm之前,使你的 Xwindows 正常工作。如果 Xwindows 無法正常執行的話,你的xdm 也不會正常執行,而且會引起許多問題。
從檔案/etc/inittab 底部的這一行,你可以清楚的看到RedHat 6.0 使用了gdm 來代替xdm
x:5:respawn:/etc/X11/prefdm -nodaemon
因此把這一行改為,
x:5:respawn:/usr/bin/X11/xdm -nodaemon
我修改的所有檔案都在 "/etc/X11/xdm" 目錄下。
--------------------------------------------------------------------------------
我的配置檔案
我只對下列幾個檔案感興趣,
/etc/X11/xdm/Xsetup_0
/etc/X11/xdm/Xresources
/etc/X11/xdm/GiveConsole
/etc/rc.d/rc.change_graphic
/etc/rc.d/rc.local
/etc/inittab 另外,圖形檔案位於 /etc/X11/xdm/graphics/ 目錄下。
我的目的是改變xdm使它具有一個xeyes,一個聖誕老人,一個鐘,一個圖片以及選擇 在登入前的背景色。登入後讓聖誕老人死掉。酷吧?
好吧,現在讓我們一步一步的來做:
複製我的 graphics perl script 到"/etc/rc.d/rc.change_graphic"。這個檔案改變了顯示在螢幕上的圖形。影像作為gif檔案儲存在“/etc/x11/xdm/graphics”目錄下。
複製我的kill santa perl script 到 "/etc/X11/xdm/KillXsnow"。這個檔案殺死了聖誕老人,他慢慢地掉落桌面。
複製我的 Xsetup script 到 "/etc/X11/xdm/Xsetup_0". 這個程式和圖形登入介面一起執行。
複製我的 Xresources script 到 "/etc/X11/xdm/Xresources". 這個檔案設定了xdm的外觀。
複製我的 GiveConsole script到 "/etc/X11/xdm/GiveConsole". 這個檔案決定了在Xwindows移交給使用者之前要執行的一些程式。
把 這個命令 加到 "/etc/rc.d/rc.local" 檔案中。以確保在啟動的時候得到我們定義的影像 。
複製我的 gif 檔案 到"/etc/X11/xdm/graphics/" 目錄下,並且執行
tar -C / -zxvf xdm.tgz
這些就是我使用的一些圖象。
--------------------------------------------------------------------------------
這裡是配置檔案的其餘部分:
--------------------------------------------------------------------------------
Change graphics perl script
位於 "/etc/rc.d/rc.change_graphic"。 在複製之後執行命令 "chmod 755 /etc/rc.d/rc.change_graphic"。
#!/usr/bin/perl
@Files = 〈/etc/X11/xdm/graphics/*.gif〉;
#print @Files;
$Length = @Files;
$Seconds = `date +%S`;
chomp $Second;
$Frac = $Seconds/60;
if (!($Frac > 0)) {$Frac=1}
$Random = $Frac*$Length;
($Random,$Junk) = split(/./, $Random,2);
if (($Random < 1) || ($Random > $Length -1)) {$Random = 1}
$File = $Files[$Random];
$Rand2 = rand $Length;
($Rand2,$Junk) = split(/./, $Rand2,2);
$Random = $Random + $Rand2;
if ($Random > $Length - 1) {$Random = $Random - $Length + 1;}
#print "$Length $Random $File ";
if (-e "/etc/X11/xdm/xdm_front.gif") {system "rm /etc/X11/xdm/xdm_front.gif"}
if (@Files < 1)
{
## Some sort of error messege should be here.
}
else
{system "ln -s $File /etc/X11/xdm/xdm_front.gif";}
--------------------------------------------------------------------------------
Kill Santa perl script
位於 "/etc/X11/xdm/KillXsnow"。複製後執行 命令 "chmod 755 /etc/X11/xdm/KillXsnow" 。
#!/usr/bin/perl
### I had to add the -a option between RH 5.2 and 6.0
@Temp = `cd /proc; grep -a ^/usr/X11R6/bin/xsnow /proc/[0-9]*/cmdline`;
if (@Temp > 0)
{
$Xsnow = shift @Temp;
($Junk,$ProcJunk,$No,$RestOfJunk) = split(?/?,$Xsnow);
## I am really paranoid that I want to kill the right pid
if (($No > 0) && ($Xsnow =~ ?^/proc/$No/cmdline:/usr/X11R6/bin/xsnow?))
{
# system "echo "Killing pid $No for Xsnow. " > /tmp/1.txt ";
system "kill $No";
}
}
--------------------------------------------------------------------------------
Xsetup_0 script
位於 "/etc/X11/xdm/Xsetup_0"。複製後執行命令" chmod 755 /etc/X11/xdm/Xsetup_0"。
#!/bin/sh
# $XConsortium: Xsetup_0,v 1.3 93/09/28 14:30:31 gildea Exp $
/usr/X11R6/bin/xconsole -geometry 480x130-0-0 -daemon -notify -verbose -fn fixed -exitOnFail
#/usr/X11R6/bin/xbanner
### Santa and snowflakes
### On some installs, I am missing xsnow for some reason.
/usr/X11R6/bin/xsnow -snowflakes 50 -santa 2 -unsmooth &
### Load the random image
/usr/bin/X11/xloadimage -onroot -at 1,210 /etc/X11/xdm/xdm_front.gif -border brown &
### A clock would be nice to see
/usr/X11R6/bin/xclock -digital -update 1 -fn -adobe-times-medium-i-normal--34-240-100-100-p-168-iso8859-1 -geometry +410+1 &
### Let us turn on xeyes
/usr/X11R6/bin/xeyes -geometry +410+100 &
--------------------------------------------------------------------------------
Xrsources file
位於 "/etc/X11/xdm/Xresources"。複製後執行命令 “chmod 755 /etc/X11/xdm/Xresources" 。
! $XConsortium: Xresources /main/8 1996/11/11 09:24:46 swick $
xlogin*login.translations: #override
CtrlR: abort-display()
F1: set-session-argument(failsafe) finish-field()
CtrlReturn: set-session-argument(failsafe) finish-field()
Return: set-session-argument() finish-field()
xlogin*borderWidth: 3
xlogin*geometry: 400x200+1+1
xlogin*greeting: CLIENTHOST
xlogin*namePrompt: login:40
xlogin*fail: Login incorrect
#ifdef COLOR
xlogin*greetColor: CadetBlue
xlogin*failColor: red
*Foreground: black
*Background: #fffff0
#else
xlogin*Foreground: black
xlogin*Background: white
#endif
XConsole.text.geometry: 480x130
XConsole.verbose: true
XConsole*iconic: true
XConsole*font: fixed
Chooser*geometry: 700x500+100+100
Chooser*allowShellResize: false
Chooser*viewport.forceBars: true
Chooser*label.font: *-new century schoolbook-bold-i-normal-*-240-*
Chooser*label.label: XDMCP Host Menu from CLIENTHOST
Chooser*list.font: -*-*-medium-r-normal-*-*-230-*-*-c-*-iso8859-1
Chooser*Command.font: *-new century schoolbook-bold-r-normal-*-180-*
--------------------------------------------------------------------------------
GiveConsole file
位於 "/etc/X11/xdm/GiveConsole".
你所要做的就是把 "/etc/X11/xdm/KillXsnow & " 作為第一個命令加入檔案。 我的是這樣的,
#!/bin/sh
# Assign ownership of the console to the invoking user
# $XConsortium: GiveConsole,v 1.2 93/09/28 14:29:20 gildea Exp $
# By convention, both xconsole and xterm -C check that the
# console is owned by the invoking user and is readable before attaching
# the console output. This way a random user can invoke xterm -C without
# causing serious grief.
/etc/rc.d/rc.change_graphic &
/etc/X11/xdm/KillXsnow &
chown $USER /dev/console
/usr/X11R6/bin/sessreg -a -w "/var/log/wtmp" -u "/var/run/utmp"
-x "/etc/X11/xdm/Xservers" -l $DISPLAY -h "" $USER
--------------------------------------------------------------------------------
/etc/rc.d/rc.local file
把下行命令加入檔案 /etc/rc.d/rc.local 。
/etc/rc.d/rc.change_graphic
--------------------------------------------------------------------------------
結論
XDM 非常“酷”。這是一種老的實現方法。我推薦使用gdm或者其它什麼。 我給 XDM 打 B- 。它缺乏一些我早就希望看到的gdm有的好的素材。
下次我會解釋 GDM 。 Gdm 有一種非常好的能力,可以讓你選擇你想要的工作臺環境 。在RedHat 6.0 下,當你登入時可以選擇 KDE ,GNOME ,或者其它的工作臺環境,這 是非常“酷”的。全面的, 我給 gdm 打 B+ ,而且如果它變的更好說明的化,可以打A 。我再次希望可以再八月刊上發表關於gdm的文章。
--------------------------------------------------------------------------------
Mark works as a receptionist (shorts and tee--shirt) under Mike Hunter at The Computer Underground and as a professional (suit and tie) consultant at 800linux.com. In his spare time, he does volunteer stuff, like writing these documents.
本文的最近更新會放在 The Computer Underground: http://www.tcu-inc.com/mark/articles/Kickstart.html.
修改:
透過在 /etc/x11/xdm/Xservers 檔案中加入以下幾行,可以得到四個 xdm 會話,由此可以允許四個不同使用者登入。看上去好象所有精巧的素材設定只對最後一個會話起作用。不過可能很容易修正這一點,也許我會在下一篇文章中提到。
:0 A local /usr/X11R6/bin/X :0
:1 B local /usr/X11R6/bin/X :1
:2 C local /usr/X11R6/bin/X :2
:3 D local /usr/X11R6/bin/X :3
--------------------------------------------------------------------------------
資源
什麼是XDM? -- 一種圖形化的登入介面
我的配置
結論
--------------------------------------------------------------------------------
資源
Chris Carlson 在Linux公報中的文章。
man xdm
我以前寫的文稿。 這些文稿寫於1996年12月,那時我還是一個hacker(真是一種很美妙的感覺)。我想那時侯Linux公報也剛開始發行。時間過的真快,我本應當在那時侯就發表這篇文章的。
--------------------------------------------------------------------------------
什麼是XDM?
簡而言之,xdm 只不過是一種圖形化的登入介面。當你的計算機啟動的時候你可以讓你的老闆和朋友們記住你的計算機沒有那種令人厭煩的字元控制檯介面。其實它就是讓你的Linux看上去比他們原想的要“酷”一些。
理論上說,雖然這是在Redhat 6.0的環境下配置的,但對於任何Linux的distributio n,大多數配置檔案都能正常工作。 當啟動圖形登入介面的時候,Redhat 6.0 使用的是gdm,而不是xdm。雖然gdm看上去 要比xdm好的多,但我現在還不能讓gdm象我需要的方式執行。一旦我解決了一些問題,我 會再寫一篇關於gdm的簡要文章。
這裡有一些需要注意的事項 ,
如果你想要你的 xdm (或者 gdm) 在計算機啟動的時候執行,你應該確保在檔案 /etc/inittab 中的這一行
id:3:initdefault:
為
id:5:initdefault:
請注意,無論你想做什麼,都必須在你設定啟動時執行 xdm之前,使你的 Xwindows 正常工作。如果 Xwindows 無法正常執行的話,你的xdm 也不會正常執行,而且會引起許多問題。
從檔案/etc/inittab 底部的這一行,你可以清楚的看到RedHat 6.0 使用了gdm 來代替xdm
x:5:respawn:/etc/X11/prefdm -nodaemon
因此把這一行改為,
x:5:respawn:/usr/bin/X11/xdm -nodaemon
我修改的所有檔案都在 "/etc/X11/xdm" 目錄下。
--------------------------------------------------------------------------------
我的配置檔案
我只對下列幾個檔案感興趣,
/etc/X11/xdm/Xsetup_0
/etc/X11/xdm/Xresources
/etc/X11/xdm/GiveConsole
/etc/rc.d/rc.change_graphic
/etc/rc.d/rc.local
/etc/inittab 另外,圖形檔案位於 /etc/X11/xdm/graphics/ 目錄下。
我的目的是改變xdm使它具有一個xeyes,一個聖誕老人,一個鐘,一個圖片以及選擇 在登入前的背景色。登入後讓聖誕老人死掉。酷吧?
好吧,現在讓我們一步一步的來做:
複製我的 graphics perl script 到"/etc/rc.d/rc.change_graphic"。這個檔案改變了顯示在螢幕上的圖形。影像作為gif檔案儲存在“/etc/x11/xdm/graphics”目錄下。
複製我的kill santa perl script 到 "/etc/X11/xdm/KillXsnow"。這個檔案殺死了聖誕老人,他慢慢地掉落桌面。
複製我的 Xsetup script 到 "/etc/X11/xdm/Xsetup_0". 這個程式和圖形登入介面一起執行。
複製我的 Xresources script 到 "/etc/X11/xdm/Xresources". 這個檔案設定了xdm的外觀。
複製我的 GiveConsole script到 "/etc/X11/xdm/GiveConsole". 這個檔案決定了在Xwindows移交給使用者之前要執行的一些程式。
把 這個命令 加到 "/etc/rc.d/rc.local" 檔案中。以確保在啟動的時候得到我們定義的影像 。
複製我的 gif 檔案 到"/etc/X11/xdm/graphics/" 目錄下,並且執行
tar -C / -zxvf xdm.tgz
這些就是我使用的一些圖象。
--------------------------------------------------------------------------------
這裡是配置檔案的其餘部分:
--------------------------------------------------------------------------------
Change graphics perl script
位於 "/etc/rc.d/rc.change_graphic"。 在複製之後執行命令 "chmod 755 /etc/rc.d/rc.change_graphic"。
#!/usr/bin/perl
@Files = 〈/etc/X11/xdm/graphics/*.gif〉;
#print @Files;
$Length = @Files;
$Seconds = `date +%S`;
chomp $Second;
$Frac = $Seconds/60;
if (!($Frac > 0)) {$Frac=1}
$Random = $Frac*$Length;
($Random,$Junk) = split(/./, $Random,2);
if (($Random < 1) || ($Random > $Length -1)) {$Random = 1}
$File = $Files[$Random];
$Rand2 = rand $Length;
($Rand2,$Junk) = split(/./, $Rand2,2);
$Random = $Random + $Rand2;
if ($Random > $Length - 1) {$Random = $Random - $Length + 1;}
#print "$Length $Random $File ";
if (-e "/etc/X11/xdm/xdm_front.gif") {system "rm /etc/X11/xdm/xdm_front.gif"}
if (@Files < 1)
{
## Some sort of error messege should be here.
}
else
{system "ln -s $File /etc/X11/xdm/xdm_front.gif";}
--------------------------------------------------------------------------------
Kill Santa perl script
位於 "/etc/X11/xdm/KillXsnow"。複製後執行 命令 "chmod 755 /etc/X11/xdm/KillXsnow" 。
#!/usr/bin/perl
### I had to add the -a option between RH 5.2 and 6.0
@Temp = `cd /proc; grep -a ^/usr/X11R6/bin/xsnow /proc/[0-9]*/cmdline`;
if (@Temp > 0)
{
$Xsnow = shift @Temp;
($Junk,$ProcJunk,$No,$RestOfJunk) = split(?/?,$Xsnow);
## I am really paranoid that I want to kill the right pid
if (($No > 0) && ($Xsnow =~ ?^/proc/$No/cmdline:/usr/X11R6/bin/xsnow?))
{
# system "echo "Killing pid $No for Xsnow. " > /tmp/1.txt ";
system "kill $No";
}
}
--------------------------------------------------------------------------------
Xsetup_0 script
位於 "/etc/X11/xdm/Xsetup_0"。複製後執行命令" chmod 755 /etc/X11/xdm/Xsetup_0"。
#!/bin/sh
# $XConsortium: Xsetup_0,v 1.3 93/09/28 14:30:31 gildea Exp $
/usr/X11R6/bin/xconsole -geometry 480x130-0-0 -daemon -notify -verbose -fn fixed -exitOnFail
#/usr/X11R6/bin/xbanner
### Santa and snowflakes
### On some installs, I am missing xsnow for some reason.
/usr/X11R6/bin/xsnow -snowflakes 50 -santa 2 -unsmooth &
### Load the random image
/usr/bin/X11/xloadimage -onroot -at 1,210 /etc/X11/xdm/xdm_front.gif -border brown &
### A clock would be nice to see
/usr/X11R6/bin/xclock -digital -update 1 -fn -adobe-times-medium-i-normal--34-240-100-100-p-168-iso8859-1 -geometry +410+1 &
### Let us turn on xeyes
/usr/X11R6/bin/xeyes -geometry +410+100 &
--------------------------------------------------------------------------------
Xrsources file
位於 "/etc/X11/xdm/Xresources"。複製後執行命令 “chmod 755 /etc/X11/xdm/Xresources" 。
! $XConsortium: Xresources /main/8 1996/11/11 09:24:46 swick $
xlogin*login.translations: #override
CtrlR: abort-display()
F1: set-session-argument(failsafe) finish-field()
CtrlReturn: set-session-argument(failsafe) finish-field()
Return: set-session-argument() finish-field()
xlogin*borderWidth: 3
xlogin*geometry: 400x200+1+1
xlogin*greeting: CLIENTHOST
xlogin*namePrompt: login:40
xlogin*fail: Login incorrect
#ifdef COLOR
xlogin*greetColor: CadetBlue
xlogin*failColor: red
*Foreground: black
*Background: #fffff0
#else
xlogin*Foreground: black
xlogin*Background: white
#endif
XConsole.text.geometry: 480x130
XConsole.verbose: true
XConsole*iconic: true
XConsole*font: fixed
Chooser*geometry: 700x500+100+100
Chooser*allowShellResize: false
Chooser*viewport.forceBars: true
Chooser*label.font: *-new century schoolbook-bold-i-normal-*-240-*
Chooser*label.label: XDMCP Host Menu from CLIENTHOST
Chooser*list.font: -*-*-medium-r-normal-*-*-230-*-*-c-*-iso8859-1
Chooser*Command.font: *-new century schoolbook-bold-r-normal-*-180-*
--------------------------------------------------------------------------------
GiveConsole file
位於 "/etc/X11/xdm/GiveConsole".
你所要做的就是把 "/etc/X11/xdm/KillXsnow & " 作為第一個命令加入檔案。 我的是這樣的,
#!/bin/sh
# Assign ownership of the console to the invoking user
# $XConsortium: GiveConsole,v 1.2 93/09/28 14:29:20 gildea Exp $
# By convention, both xconsole and xterm -C check that the
# console is owned by the invoking user and is readable before attaching
# the console output. This way a random user can invoke xterm -C without
# causing serious grief.
/etc/rc.d/rc.change_graphic &
/etc/X11/xdm/KillXsnow &
chown $USER /dev/console
/usr/X11R6/bin/sessreg -a -w "/var/log/wtmp" -u "/var/run/utmp"
-x "/etc/X11/xdm/Xservers" -l $DISPLAY -h "" $USER
--------------------------------------------------------------------------------
/etc/rc.d/rc.local file
把下行命令加入檔案 /etc/rc.d/rc.local 。
/etc/rc.d/rc.change_graphic
--------------------------------------------------------------------------------
結論
XDM 非常“酷”。這是一種老的實現方法。我推薦使用gdm或者其它什麼。 我給 XDM 打 B- 。它缺乏一些我早就希望看到的gdm有的好的素材。
下次我會解釋 GDM 。 Gdm 有一種非常好的能力,可以讓你選擇你想要的工作臺環境 。在RedHat 6.0 下,當你登入時可以選擇 KDE ,GNOME ,或者其它的工作臺環境,這 是非常“酷”的。全面的, 我給 gdm 打 B+ ,而且如果它變的更好說明的化,可以打A 。我再次希望可以再八月刊上發表關於gdm的文章。
--------------------------------------------------------------------------------
Mark works as a receptionist (shorts and tee--shirt) under Mike Hunter at The Computer Underground and as a professional (suit and tie) consultant at 800linux.com. In his spare time, he does volunteer stuff, like writing these documents.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-950498/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 讓redhat9 自動進入圖形登陸介面(轉)Redhat
- Ubuntu 16.04無法登入圖形介面Ubuntu
- 用Xmanager遠端登入AIX圖形介面AI
- 解除Ubuntu系統的root登入圖形介面限制Ubuntu
- AIX圖形介面配置AI
- Rhel7配置遠端圖形化介面登陸
- 使用Python編寫一個QQ辦公版的圖形登入介面!Python
- ubuntu密碼正確,卻不能登入圖形介面Ubuntu密碼
- Linux圖形介面GNOME和KDE終獲統一(轉)Linux
- LINUX的遠端圖形介面VNC配置以及調整LinuxVNC
- Linux下的GTK圖形介面程式設計(轉)Linux程式設計
- CentOS 6.2圖形介面允許root使用者登入CentOS
- Linux圖形介面知識-輕鬆更換圖形環境(轉)Linux
- fedora 17的root不能圖形介面登陸
- 解除Ubuntu18.04.1 root登入圖形介面的限制Ubuntu
- Linux字元介面和圖形介面Linux字元
- Linux 安裝圖形介面Linux
- WSL安裝及配置圖形介面
- win10遠端登入Ubuntu14.04圖形化介面Win10Ubuntu
- 圖形使用者介面(轉)
- DirectX 圖形介面指南(2) (轉)
- DirectX 圖形介面指南(4) (轉)
- DirectX 圖形介面指南(3) (轉)
- DirectX 圖形介面指南(5) (轉)
- DirectX 圖形介面指南(6) (轉)
- DirectX 圖形介面指南(7) (轉)
- 急救~進不了圖形介面(轉)
- solaris取消或啟動圖形介面登陸
- DirectX圖形介面指南的介紹(轉)
- VNC連線linux圖形介面VNCLinux
- Ubuntu無法進入圖形介面Ubuntu
- MFC登入介面,跳轉到功能介面
- Linux字元介面切換到圖形介面Linux字元
- linux圖形介面和命令列介面切換Linux命令列
- SecureCRT 通過Xmanager 開啟圖形介面(root使用者登入後,su登入oracle使用者)SecurecrtOracle
- Xmanager4遠端連線linux圖形介面(vsftpd配置)LinuxFTP
- linux 免登入以及配置別名登入Linux
- vnc批次登入,2種VNC批次登入Linux的方法VNCLinux