如何實(shí)現(xiàn)Linux操作系統(tǒng)的自動(dòng)登錄
- 發(fā)布于:2021-10-25
- 共 250 人圍觀
一、Linux啟動(dòng)的最后階段的工作
Linux在啟動(dòng)過(guò)程的最后階段(具體啟動(dòng)步驟略),init會(huì)根據(jù)/etc/inittab文件的最后一行x:5:respawn:/etc/X11/prefdm-nodaemon運(yùn)行/etc/X11/prefdm腳本,(Redhat7.2缺省時(shí)是這樣的)。prefdm腳本的主要任務(wù)是完成X Window的啟動(dòng),可以有幾種啟動(dòng)X Window的方法,都包含在prefdm腳本中,幾種主要方法有:
運(yùn)行xdm啟動(dòng)X Window;
運(yùn)行g(shù)dm,進(jìn)入gnome桌面環(huán)境;
運(yùn)行kdm進(jìn)入kde桌面環(huán)境;
自動(dòng)登錄進(jìn)入Linux;
prefdm腳本框架大致如下:
#!/bin/sh
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin
. /etc/profile.d/lang.sh
# 第一步:查看是否為自動(dòng)登錄
if [ -f /etc/sysconfig/autologin -a -x /usr/sbin/autologin ]; then
if /usr/sbin/autologin; then
exit 0
fi
fi
# 第二步:如果不是自動(dòng)登錄方式,就會(huì)在/etc/sysconfig/desktop中搜尋用戶偏愛的登錄方式
......
# 可以是kdm、gdm以及xdm,并運(yùn)行相應(yīng)的kdm、gdm以及xdm。
二、自動(dòng)登錄的實(shí)現(xiàn)(autologin的實(shí)現(xiàn))
在/etc/X11/prefdm腳本中,是否實(shí)現(xiàn)自動(dòng)登錄有一個(gè)條件測(cè)試開關(guān),事實(shí)上,可以在這里注釋掉測(cè)試開關(guān),直接執(zhí)行啟動(dòng)X Window的操作。
自動(dòng)登錄實(shí)質(zhì)上就是繞過(guò)身份驗(yàn)證,直接啟動(dòng)X Window。X Window的啟動(dòng)可以由xinit來(lái)完成。
Xinit用來(lái)啟動(dòng)X Window系統(tǒng)服務(wù)器以及系統(tǒng)上的第一個(gè)客戶程序,可以通過(guò)為xinit傳遞命令行參數(shù)的形式指定要啟動(dòng)的服務(wù)器及客戶程序。如果不傳遞參數(shù)給xinit,它將在用戶的根目錄下尋找并運(yùn)行.xinitrc腳本來(lái)啟動(dòng)客戶程序;在用戶的根目錄下尋找并運(yùn)行.xserverrc腳本來(lái)啟動(dòng)服務(wù)器。如果xinit在用戶的根目錄下找不到.xinitrc、.xserverrc,xinit將使用缺省的X:0。實(shí)際上,用startx來(lái)啟動(dòng)X更為方便。對(duì)于運(yùn)行單一會(huì)話的XWindow系統(tǒng),startx提供了更為良好的用戶接口。同樣,startx首先在用戶的根目錄下尋找.xinitrc及.xserverrc腳本,如果找不到這兩個(gè)腳本,startx將使用/etc/X11/xinit/xinitrc以及/etc/X11/xinit/xserverrc腳本。startx腳本的最基本框架是:
a、 尋找.xinitrc,如果沒(méi)有則使用xinitrc;
b、 尋找.xserverrc,如果沒(méi)有則使用xserverrc;
c、 根據(jù)找到的腳本確定xinit的參數(shù);
由此可看出,startx在不需要傳遞任何參數(shù)的情況下,可以完成啟動(dòng)X的任務(wù),因此,可以如下修改/etc/X11/prefdm腳本來(lái)實(shí)現(xiàn)自動(dòng)登錄:
#!/bin/sh
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin
. /etc/profile.d/lang.sh
# 第一步:查看是否為自動(dòng)登錄
#if [ -f /etc/sysconfig/autologin -a -x /usr/sbin/autologin ]; then
#注釋掉上邊的條件測(cè)試,直接運(yùn)行startx
if /usr/X11R6/bin/startx; then
exit 0
fi
#fi
當(dāng)然,應(yīng)確保/etc/inittab中的啟動(dòng)級(jí)別為5。
重新啟動(dòng)系統(tǒng),會(huì)發(fā)現(xiàn)系統(tǒng)不驗(yàn)證用戶身份,直接進(jìn)入XWindow,此時(shí)的用戶身份為root。但是,如果原來(lái)root有自己的桌面、默認(rèn)shell時(shí),上述方法啟動(dòng)X不一定保證還能擁有原來(lái)的設(shè)置。為了在啟動(dòng)X后,在避免驗(yàn)證身份的同時(shí),又不改變用戶原來(lái)的設(shè)置,那么在運(yùn)行startx之前,還有工作要做。
轉(zhuǎn)載請(qǐng)說(shuō)明出處:六百號(hào)技術(shù) - SEO優(yōu)化,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)絡(luò)編程,軟件技巧,網(wǎng)絡(luò)知識(shí),系統(tǒng)技術(shù) ? 如何實(shí)現(xiàn)Linux操作系統(tǒng)的自動(dòng)登錄
標(biāo)簽: