Linux的自动登陆方式分两种:一种是控制台登陆,一种是图形界面登陆。现以RHEL和GNOME为例:
一、控制台登陆:
1. 将"/etc/inittab"中的"id:5:initdefault:"改为"id:3:initdefault:",然后将"1:2345:respawn:/sbin/mingetty tty1"改为"1:2345:respawn:/sbin/mingetty --autologin=root tty1",其它的控制台也可按此方式来实现自动登陆。(只针对RHEL4.x和RHEL5.x)
2. 将"/etc/inittab"中的"id:5:initdefault:"改为"id:3:initdefault:",然后将"/etc/init/tty.conf"中的"exec /sbin/mingetty $TTY"改为"exec /sbin/mingetty --autologin=root $TTY",这样所有的控制台都实现了自动登陆。(只针对RHEL6.x)
3. 在/sbin目录下新建文件autologin,写入如下内容:
exec 0</dev/$1 1>/dev/$1 2>&1
cat /etc/issue
shift
exec $*
然后改变文件权限chmod 777 /sbin/autologin,接着将"/etc/inittab"中的"id:5:initdefault:"改为"id:3:initdefault:"和将"1:2345:respawn:/sbin/mingetty tty1"改为"1:2345:respawn:/sbin/autologin tty1 login -f root"即可,其它控制台可按引方式进行修改。(只针对RHEL4.x和RHEL5.x)
可参考:http://blog.chinaunix.net/uid-20782369-id-96167.html
二、图形界面登陆:
1. 将默认登陆方式改为5,即"id:5:initdefault:",然后修改"/etc/gdm/custom.conf"(RHEL4.x为/etc/X11/gdm.conf)文件,往[daemon]添加两项:AutomaticLoginEnable=true和AutomaticLogin=root,往[security]添加"AllowRoot=true"即可。(只针对RHEL6.x)
2. 按照方式1,RHEL4.x和RHEL5.x都无法实现root自动登陆,非root用户就可以,具体原因找不到,如哪位朋友知道,麻烦告诉我一下。目前的解决办法有两种:
1)随便新建一个用户david,然后将/etc/passwd和/etc/group中的david那一项改成跟root一样,即"david:x:0:0:root:/root:/bin/bash"和"david:x:0:root",这样david就变成超级用户了,最后就按方式1进行修改,此时AutomaticLogin=root改为AutomaticLogin=david,这样就实现了超级用户的自动登陆。
2)首先按"控制台登陆"的任一种方式进行修改,然后往/root/.bash_profile文件的后面添加如下内容:
if [ -z "$DISPLAY" ] && [ "$(tty)" = "/dev/tty1" ]
then
startx
fi
(可选)接着修改/usr/bin/startx,将xserverauthfile=$HOME/.serverauth.$$改为xserverauthfile=$XAUTHORITY
可参考:http://blog.csdn.net/yjfkpyu/article/details/3873027
3. 运行gdmsetup命令或在桌面主菜单中打 "系统>系统管理>登录窗口",点"安全"选项页,选择"允许本地管理员登录"。其修改效果跟方式1一样。(通用)
4. 通过修改/etc/X11/prefdm文件。(自动登陆5种方法)
可参考:http://www.cnblogs.com/xianyunhe/archive/2011/08/08/2124342.html