前些天为了实现Linux自动登陆的方法,在网上查了很多资料,发现有不少方法,但网上有些方法的讲解不是特别清楚,或者已经过时。因此,特意整理了一下Linux自动登陆的设置方法。
本文的测试环境为Centos 5.5。

1、设置GDM
GDM是GNOME显示管理器,通过设置其配置文件/etc/gdm/custom.conf可以设置帐号自动登陆。
设置方法如下:
在/etc/gdm/custom.conf文件中添加以下内容
[daemon]
AutomaticLogin=username
AutomaticLoginEnable=True
其中,username是要自动登陆的用户名。
说明:username不能是root,也就说无法实现root的自动登陆。

2、设置prefdm
其中,/etc/inittab文件的最后一行,该行命令的作用是启动X Windows,而/etc/X11/prefdm就是具体实现启动X Windows的脚本。
在/etc/X11/prefdm中添加启动X Windows的命令,并退出。
/usr/bin/startx
exit 1
说明:
(1)这两行代码一定要在
[ -n "$preferred" ] && exec $preferred "$@" >/dev/null 2>&1 </dev/null
代码之前。
(2)该方法自动以root登陆,是因为运行到/etc/X11/prefdm时,是root身份。

3、在rc.local中启动X Windows
在/etc/rc.local中添加启动X Windows的命令
/usr/bin/startx
说明:该方法自动以root登陆,是因为运行到/etc/rc.local时,是root身份。

4、更改mingetty和login的源码。
该方法只对文本模式有效,因此,需要把/etc/initab中的设置为:
id:3:initdefault:

/sbin/mingetty的作用是获取登陆用户名,并把用户名作为参数调用/bin/login。
/bin/login其中一个功能就是获取用户输入的密码。
(1) 查看/sbin/mingetty所属的软件包
[root@localhost ~]$ rpm -qf /sbin/mingetty 
mingetty-1.07-5.2.2
(2)下载mingetty对应的源码
mingetty-1.07-5.2.2.src.rpm
(3)解压源码包
[root@localhost Desktop]# rpm -ivh mingetty-1.07-5.2.2.src.rpm 
解压后的源码包所在的目录为: /usr/src/redhat/SOURCES/
查看文件
[root@localhost ~]# ls /usr/src/redhat/SOURCES/mingetty*
/usr/src/redhat/SOURCES/mingetty-1.00-opt.patch
/usr/src/redhat/SOURCES/mingetty-1.07.tar.gz
继续解压源码包
[root@localhost ~]# tar zxvf /usr/src/redhat/SOURCES/mingetty-1.07.tar.gz
mingetty-1.07/
mingetty-1.07/mingetty.8
mingetty-1.07/COPYING
mingetty-1.07/Makefile
mingetty-1.07/mingetty-0.9.4-autologin.patch
mingetty-1.07/mingetty.c
(4)修改mingetty.c中的代码
更改mingetty的代码需要进行两步操作。
第352行的char *logname, *s;
更改为char *logname = "root", *s;
把第409-415行注释
/* if (autologin) {
  do_prompt (0);
  printf ("login: %s (automatic login)\n", autologin);
  logname = autologin;
 } else
  while ((logname = get_logname ()) == 0)
   /* do nothing */ /*; */
(5)编译生成mingetty
[root@localhost ~]# cd /usr/src/redhat/SOURCES/mingetty-1.07/
[root@localhost mingetty-1.07]# make
(6)更新mingetty
[root@localhost mingetty-1.07]# cp mingetty /sbin/mingetty
mingetty的源码更改就完成了。

(1) 查看/bin/login所属的软件包
[root@localhost ~]# rpm -qf /bin/login
util-linux-2.13-0.47.el5
(2)下载login对应的源码
util-linux-2.13-0.47.e15.src.rpm
(3)解压源码包
[root@localhost Desktop]# rpm -ivh util-linux-2.13-0.47.e15.src.rp 
解压后的源码包所在的目录为: /usr/src/redhat/SOURCES/
查看解压的文件:
[root@localhost ~]# ls /usr/src/redhat/SOURCES/util-linux-2.13*tar*
util-linux-2.13-pre7.tar.bz2
继续解压文件
[root@localhost ~]# tar xf /usr/src/redhat/SOURCES/util-linux-2.13-pre7.tar.bz2
解压后的文件夹为util-linux-2.13-pre7。
其中login的源码的目录为/usr/src/redhat/SOURCES/util-linux-2.13-pre7/login-utils
login-utils文件中不存在make文件,因此,需要自己编写编译命令来生成login。
(4)修改login.c中的代码
把344行的passwd_req = 1;
更改为passwd_req = 0;
在文件中添加locale.h头文件
#include <locale.h>
(5)编译生成login
[root@localhost login-utils]# gcc -o login login.c ../lib/setproctitle.c checktty.c -Wall -lcrypt -I ../include/
(6)更新login
[root@localhost login-utils]# cp login /bin/login

重启,即可在文本模式中以root账户登录。

参考资料
1、http://www.ibm.com/developerworks/cn/linux/l-tip-prompt/tip20/
2、http://www.ibm.com/developerworks/cn/linux/l-tip-prompt/tip20/index2.html

 
分类: Linux

Linux自动登陆的设置方法的更多相关文章

  1. ecshop微信通中微信自动登录的设置方法

    ecshop微信通中微信自动登录的设置方法 来 源:共享世纪 作 者:网络 时间:2015-12-03 点击: 4017 注意:微信自动登录,必须同时满足两个条件: 第一.微信公众号必须是服务号经过认 ...

  2. eclipse syso 自动补全设置方法

    eclipse syso 自动补全设置方法   转  https://blog.csdn.net/sinat_23536373/article/details/76512390   经常遇到打”sys ...

  3. Linux 自动挂载硬盘的方法

    每次重启后,都需要手动挂载硬盘( sudo mount ),非常不方便,使用一下步骤可以实现硬盘的自动挂载 第一步  获取硬盘的基本信息(UUID TYPE) sudo blkid 第二步  修改 / ...

  4. linux自动连接校园网设置

    不知道有没有人用linux的时候碰到过校园网连接后,跳不出登录界面,即使手动输入也没有作用.写一个可能可行的方法: - 首先打开控制面板 选择网络代理 将代理中的选项设置为 估计现在就能自动弹出登录页 ...

  5. Linux环境变量永久设置方法(zsh)

    1.之前一直使用:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./home/46005/cuda-9.0/lib64/来设置cuda库路径变量 -----临时的,当 ...

  6. MS office2010 ppt自动放映的设置方法

    在菜单“幻灯片放映”-“排练时间”,进入演示,然后设置每张幻灯片需要等待的时间后,手动切换到下一张(如图),一直放映结束,会提示你是否保存排练时间.然后在菜单“幻灯片放映”-“设置放映方式”,里面选择 ...

  7. VirtualBox 虚拟机 centos7 下 设置静态ip 并支持 xshell 远程登陆的设置方法

    1.设置虚拟机使用“桥接模式” 2.使用 vi /etc/sysconfig/network-scripts/ifcfg-enp0s3  打开配置文件(其中 enp0s3 是你的linux的网卡名,在 ...

  8. ThinkPHP做自动登陆及异位或加密COOKIE!

    异位或加密方法: /* *登陆如果自动登陆加密 *默认是0解密状态,1是加密 *采用的方法是异位或加密 */ function encrytion($value,$type=0){ $key = md ...

  9. linux自动以root登录,并自动启动用户程序的设置方法

    系统自动以root登录,并自动启动用户程序的设置方法 第一步:删除root用户 vi /etc/passwd 该文件的第一行:root:X:0:0:root:/root:/bin/bash,只需要把第 ...

随机推荐

  1. 路由的Resolve机制(需要了解promise)

    angular的resovle机制,实际上是应用了promise,在进入特定的路由之前给我们一个做预处理的机会 1.在进入这个路由之前先懒加载对应的 .js $stateProvider .state ...

  2. 笔记本(WIN7|XP)发射wifi信号 当无线路由使用

    Windows7系统 第一步:是你的电脑上要有两个网卡一个有线一个无线(笔记本应该都有)台式机可以考虑买个USB无线网卡(50左右) 第二步:win+R  CMD  输入(只输入红色部分) netsh ...

  3. codeforces 451E Devu and Flowers

    题意:有n个瓶子每个瓶子有 f[i] 支相同的颜色的花(不同瓶子颜色不同,相同瓶子花视为相同) 问要取出s支花有多少种不同方案. 思路: 如果每个瓶子的花有无穷多.那么这个问题可以转化为  s支花分到 ...

  4. 监控Spark应用方法简介

    监控Spark应用有很多种方法. Web接口每一个SparkContext启动一个web UI用来展示应用相关的一些非常有用的信息,默认在4040端口.这些信息包括: 任务和调度状态的列表RDD大小和 ...

  5. 【Roman To Integer】cpp

    题目: Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from ...

  6. ERP基本功——物料的四个量

    ERP基本功——物料的四个量 在分析制造业管理问题的时候,如果能借用一些ERP里才会用到的概念,就会非常的简单,并且条理清晰. 我觉得柳中冈先生一再强调的一个观点非常有用,大意是这样的:任何人依据现有 ...

  7. Android仿WIN8系统磁贴点击下沉倾斜效果

    ※效果 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGluZ2xvbmd4aW4yNA==/font/5a6L5L2T/fontsize/400/fil ...

  8. 深入理解.net - 1.继承的本质

    最近偶然看到这个博客你必须知道的.net,作者6的飞起啊,干货十足,还是07年写的...写的也很赞,评论更精彩,在此强烈推荐一波,看的感觉就像沙漠里发现了绿洲一样,很兴奋,意犹未尽,迫不及待的看完一篇 ...

  9. spring Date格式问题

    起因: 在数据库设计中,日期时间等类型字段一般设置为Datetime格式,所以有时在接口请求实体bean中,对应的接口字段的数据类型可能会被设置为Date类型. 而在java常用场景中的时间格式一般有 ...

  10. jmeter 创建web测试计划

    测试用例: 1 创建5个用户发送请求到2个web页面: 2 发送3次请求 总请求=5*2*3=30 创建这个测试计划需要用到以下元素:thread groups / http request / ht ...