linux命令行模式自动登录

2013年6月3日 由 Creater 留言 »

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,你的系统就会直接进入到系统里面了.

广告位

发表评论

你必须 登陆 方可发表评论.