Linux自动登陆的设置方法

前些天为了实现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 "[email protected]" >/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所属的软件包
[[email protected] ~]$ rpm -qf /sbin/mingetty 
mingetty-1.07-5.2.2
(2)下载mingetty对应的源码
mingetty-1.07-5.2.2.src.rpm
(3)解压源码包
[[email protected] Desktop]# rpm -ivh mingetty-1.07-5.2.2.src.rpm 
解压后的源码包所在的目录为: /usr/src/redhat/SOURCES/
查看文件
[[email protected] ~]# ls /usr/src/redhat/SOURCES/mingetty*
/usr/src/redhat/SOURCES/mingetty-1.00-opt.patch
/usr/src/redhat/SOURCES/mingetty-1.07.tar.gz
继续解压源码包
[[email protected] ~]# 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
[[email protected] ~]# cd /usr/src/redhat/SOURCES/mingetty-1.07/
[[email protected] mingetty-1.07]# make
(6)更新mingetty
[[email protected] mingetty-1.07]# cp mingetty /sbin/mingetty
mingetty的源码更改就完成了。

(1) 查看/bin/login所属的软件包
[[email protected] ~]# rpm -qf /bin/login
util-linux-2.13-0.47.el5
(2)下载login对应的源码
util-linux-2.13-0.47.e15.src.rpm
(3)解压源码包
[[email protected] Desktop]# rpm -ivh util-linux-2.13-0.47.e15.src.rp 
解压后的源码包所在的目录为: /usr/src/redhat/SOURCES/
查看解压的文件:
[[email protected] ~]# ls /usr/src/redhat/SOURCES/util-linux-2.13*tar*
util-linux-2.13-pre7.tar.bz2
继续解压文件
[[email protected] ~]# 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
[[email protected] login-utils]# gcc -o login login.c ../lib/setproctitle.c checktty.c -Wall -lcrypt -I ../include/
(6)更新login
[[email protected] 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

时间: 2024-09-28 16:29:27

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

Linux下无需输入密码自动登陆ssh服务器方法

用OpenSSH在linux下登陆ssh服务器时,每次都提示要输入密码,而且使用vim 的netrw插件编辑远程文件时每次修改后保存都要输密码,非常麻烦.查看了netrw的help文档,发现已经介绍了自动登陆ssh服务器的方法: 1. 创建一个公开/私密钥对(在客户端机器上进行) ssh-keygen -t rsa (saving the file in ~/.ssh/id_rsa as prompted) 输入上面的命令(括号内的不用输入)后,会提示输入passphrase,直接按两次回车,不

Linux下 环境变量设置方法

etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. /etc/environment:在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境文件的环境变量. ~/.profile:在登录时用到的第三个文件是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.

Win10笔记本取消开盖自动开机的设置方法

原文链接:http://www.itjsb.com/news/show-20493.html 现在买电脑大多数都是预装win10系统,因为win10系统安装加硬件安装不到20分钟.超强的自我修复功能.更快的开机速度……但有些win10用户也反映了一些小毛病:当笔记本盖子打开时,电脑就自动开机.虽然大部分打开盖子就会使用电脑,但是如果在不知情的情况下,必然会消耗电量,造成不必要的浪费.而且有可能造成资源上的损失.所以小编就来为win10用户解疑答惑啦! 取消Win8笔记本开盖自动开机的方法: 1.

辛星浅析Linux自动获取IP设置

第一步就是激活网卡,一般通常系统装好后默认的网卡是eth0,我们只需要使用ifconfig  eth0   up来激活它. 第二步就是设置网卡进入系统后启动,我们使用chkconfig   --level   2345   network  on就可以了. 第三步就是修改网卡文件,我们只需要设置ONBOOT的值为true即可,设置BOOTPROTO的值为dhcp即可,其中ONBOOT是让网络服务启动时使用该网卡,而BOOTPROTO则是让网卡从dhcp服务器自动获取IP地址. 这个网卡文件通常位

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

1.设置虚拟机使用"桥接模式" 2.使用 vi /etc/sysconfig/network-scripts/ifcfg-enp0s3  打开配置文件(其中 enp0s3 是你的linux的网卡名,在shell中 使用 ip addr 命令自行查看自己的名称并将此处的改成自己的,紧跟数字的后面那个参数就是,不是 lo 那个) 修改以下参数将 BOOTPROUTE="dhcp" 改为 BOOTPROUTE="static"将 ONBOOT=&quo

安卓代码自动补全及代码自动提示的设置方法

设置代码提示 1.左上角点击File选项,找到Settings 2.点击Settings后,找到Editor 3.点击Editor后,找到General,点击General,找到Code  Completion 从图中我们可以看到Case sensitive completion 里面有三个选择项None,All,First letter All:选择这个的话,意思就是要和你输入的字符进行全匹配,能全匹配起来的字符才会显示在提示列表中,如下图,其实就相当于精确搜索: None:选择这项的话,意思

Linux虚拟机静态IP设置方法

命令行下修改 1.修改ip设置,编辑文件: $sudo vi /etc/network/interfaces auto lo iface lo inet loopback #添加: auto eth0 iface eth0 inet static address 192.168.1.20 netmask 255.255.255.0 gateway 192.168.1.1 保存,这样,IP并没有立即生效.需要执行 $sudo /etc/init.d/networking restart 2.修改D

双击包裹物品自动解包设置方法_传奇版本技术

栏目: 在物品数据库(Stditem.db)中进行设置,找到需要解包的物品道具,将Shape字段设置为100.如下图所示 然后再服务端中找到UnbindList.txt(位于:D:\MirServer\Mir200\Envir\目录下),添加如下格式即可 100    金创药最后数据库里面的超级金创要的Shape字段数值为100 原文地址:https://www.cnblogs.com/tutublogs/p/8337144.html

Linux操作系统下防火墙设置方法

修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,如果要开放哪个端口,在里面添加一条. -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT 就可以了,其中 1521 是要开放的端口号,然后重新启动linux的防火墙服务. 停止/启动防火墙服务的命令: 用root登录后,执行 service iptables stop --停止 service iptabl