现在的位置: 首页 > 综合 > 正文

实现linux的自动登录–命令行模式启动

2012年10月24日 ⁄ 综合 ⁄ 共 978字 ⁄ 字号 评论关闭

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里面设置就好了.

抱歉!评论已关闭.