Linux下设置自动登陆

首先将图形界面启动,设置为命令行界面登陆
这块的话,各个Linux版本,有不同的方法,但是设置系统默认登陆连接是相同的,这种方法,我在Ubuntu和RedHat下试验,都是可以的。
systemctl set-default graphical.target
目标分类有这么几类:
0runlevel0.target,poweroff.target关闭系统。
1runlevel1.target,rescue.target进入救援模式。
2runlevel2.target,multi-user.target进入非图形界面的多用户方式。
3runlevel3.target,multi-user.target进入非图形界面的多用户方式。
4runlevel4.target,multi-user.target进入非图形界面的多用户方式。
5runlevel5.target,graphical.target进入图形界面的多用户方式。
6runlevel6.target,reboot.target重启系统。
当然,RedHat下修改/etc/inittab中的启动级别也可以,但是Ubuntu下没有这个文件
查看当前系统agetty或者getty的版本,下载相对应版本的util-linux源代码
修改agetty.c和login.c
agetty.c的修改:
注释456~459这四行,不再提示获取用户名,直接设置"username="root"; "
login.c的修改:
注释1226行,不再根据getuid识别账户类型,然后获取权限,直接设置"cxt.noauth = 1;",由于我们的账号已经设置为root,这里的修改,是利用"-f"这个参数,不再检验密码,直接跳过,从而避免了密码的输入。
编译时需要注意一点是,检查本身系统有没有libpam 开发包
查看/usr/include/security目录下是否有相对应的pam开头的文件
Debian系下安装:
apt-get install libpam0g-dev
Redhat系下安装:
yum install gcc pam-devel
以上,设置就完了,然后就是在下载的util-linux目录下,./configure 检查环境无误后,make一下
这里要注意的就是,下载util-linux包与自己当前系统环境下的agetty的版本最好一致,或者接近,因为版本呢如果相差较多,可能会有环境不匹配的问题存在

你可能感兴趣的:(Linux下设置自动登陆)