1. 程式人生 > >實現linux的自動登入--命令列模式啟動 .

實現linux的自動登入--命令列模式啟動 .

linux的登入主要是由兩個檔案在控制,/usr/sbin/getty來獲得使用者名稱,並進行檢查使用者名稱是否存在,然後將使用者名稱傳遞給/usr/bin/login來獲取使用者輸入密碼和檢查密碼是否正確.

所以要實現linux的自動登入,就要改動這兩個檔案.
1.getty實現的主要功能是:
  1)開啟指定的tty;
  2)提示使用者登入(login:);
  3)獲得登入使用者名稱;
  4)把使用者名稱傳遞給login命令
 
2.login實現的主要功能是:
    1)先檢車是不是超級使用者;
    2)提示使用者輸入密碼(通過getpass()實現);
    3)檢查密碼並檢查是否quiet登入;
    4)設定登入的使用者的ID和組ID,並設定相應的環境變數.
   
3.下載util-linux的source code包,login和getty的命令就是在這裡面生成的.
    1)修改agetty.c檔案的獲得logname的程式碼.
        while((logname = get_logname(&options,&chardata,&termio)) == 0)
            next_speed(&termio,&options);
        註釋掉上面兩行,然後新增:
        logname = "your count name";//輸入你的賬戶名字
   
    2)修改login.c檔案:
        passwd_req為密碼是否需要驗證的一個開關,關掉:
        passwd_req = 0;
        註釋掉下面對passwd_req做賦值的幾行:
        if(fflag && (getuid()==0))
            passwd_req = 0;
        else
            passwd_req = 1;
        上面全部註釋.
       
    3)然後./configure,進login-utils裡面make,不要make install.
    4)把系統的login和getty做個備份,然後將編譯生成的login和agetty,複製過去,agetty改名為getty.
   
4.然後reboot,你的系統就會直接進入到系統裡面了.

這是命令列啟動的系統實現的方式,linux是ubuntu系統,desktop就沒什麼好說了,直接在startup裡面設定就好了.