|
如何实现刚刚搭建好的lfs,启动后不输入用户root和密码,运行.bash_profile
试过很多方式,修改过util-linux-2.12r/login-utils/下的源文件,并编译
在agetty.c的源代码中的第366行和367行
366 while ((logname = get_logname(&options, &chardata, &termio)) == 0)
367 next_speed(&termio, &options);
此处调用了get_logname得到用户输入的用户名,get_logname在1014行调用了do_prompt函数,输出了登录的提示符,类似于“login:”。这里,我们把366和367行注释,直接赋值logname为root:
366 //while ((logname = get_logname(&options, &chardata, &termio)) == 0)
367 // next_speed(&termio, &options);
368 logname = “root”;
修改源login命令的源代码
login程序在getty的同一个进程空间中运行,接受getty传来的用户名参数作为登录的用户名。
在login.c的源代码中的第407行:
407 passwd_req = 1;
通过对源代码的分析,此处为密码是否需要验证的一个开关。我们修改此处,把密码需要验证的开关直接关闭:
407 //passwd_req = 1;
408 passwd_req = 0;
结果为用户名可以不输入,但是登陆提示输入密码。
请大虾们讨论如何解决这个问题? |
|