linux設定自動登入系統

來源:互聯網
上載者:User

啟動層級為3時自動登入的實現(共需2個步驟,第一個步驟參考網上資料,第二個網上說的太麻煩,其實非常簡單即可實現)



1、mingetty-1.00-3.src.rpm軟體包 


對於啟動層級為3的自動登入的實現,仍然需要考察/etc/inittab指令碼, 

3:123:respawn:/sbin/mingetty tty3


因此,如果想在啟動層級3的情況下實現自動登入,必須要瞭解mingetty的功能,甚至要修改mingetty的代碼。用命令
rpm -qf /sbin/mingetty 可知redhat 8.0版本的mingetty包含在mingetty-1.00-3.src.rpm
軟體包中,下載該軟體包,安裝原始碼,預設情況下,代碼會安裝在/usr/src/redhat/下,我們關心的只是mingetty.c源檔案。
mingetty.c約有五百行代碼,主要實現如下功能:

開啟指定的tty(由參數指定); 

提示使用者登入(login:); 

獲得登入使用者名稱; 

把使用者登入名稱作為參數,調用/bin/login。 

我們所關心的部分實質上只有以下三行:

... ...

438while ((logname = get_logname ()) == 0);//mingetty.c檔案438行

439execl (_PATH_LOGIN, _PATH_LOGIN, "--", logname, NULL);

440error ("%s: can't exec " _PATH_LOGIN ": %s", tty, sys_errlist[errno]);

... ...

第一行的功能是輸出login提示,並獲得使用者輸入的登入使用者名稱,登入使用者名稱由logname返回。因此,可作如下修改

... ...

438// while ((logname = get_logname ()) == 0);//注釋掉本行,不再提示login:

439logname = "root";//添加本行代碼

440execl (_PATH_LOGIN, _PATH_LOGIN, "--", logname, NULL);

441error ("%s: can't exec " _PATH_LOGIN ": %s", tty, sys_errlist[errno]);

... ...

 

注意,這裡假定使用者以超級使用者身份登入。

第二行以使用者登入名稱為參數,調用/bin/login程式,進一步實現登入。

第三行為出錯處理。

 

2、步驟1解決了登陸linux輸入使用者名稱的問題,此時登陸系統時只會提示你輸入密碼,因此步驟2即解決輸入密碼問題。


只用如下命令列即可快速實現:

passwd -d root(因為預設超級使用者登陸,故此處刪除超級使用者的密碼)

3、在/etc/inittab中修改系統層級為3

重啟即可自動登入系統


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.