RHEL/CentOS纯文本模式下的开机自动登录

• Linux系统启动登录过程

Linux系统从启动到登录的整个过程大致如下:

1> 加载BIOS信息:包含了CPU/显卡/内存/硬盘/网卡等硬件信息、设备启动顺序、时钟信息等等

2> 根据BIOS的启动顺序信息,依次执行,直到找到引导文件

3> Boot Loader:加载启动引导文件

4> 加载内核,完成Linux核心环境的建立

5> 执行/sbin/init程序,读取配置文件/etc/inittab,设定运行等级,如level 3(这是加载完内核后,系统执行的第一个程序)

6> init程序执行脚本/etc/rc.d/rc.sysinit:设定PATH变量、设定网络配置、启动swap分区、设定/proc等等

7> 依据/etc/modules.conf文件或/etc/modules.d目录下的文件来装载内核模块

8> 选择的运行等级是3,启动/etc/rc.d/rc.3.d/目录下的脚本程序,就是常说的开机自启服务

9> 执行/etc/rc.local脚本程序

10> 执行/sbin/mingetty程序,读取用户列表,并将用户名转化为/bin/login程序调用的参数

11> 执行/bin/login程序,等待输入并验证用户名和密码

至此,就清楚在level3模式下,想要实现自动登录,就需要在第10和11这两步进行修改。


• 首先,重新编译生成/sbin/mingetty程序

1. 查看当前工作站的/sbin/mingetty 所属的软件包及其版本(例如:mingetty-1.08-5.el6.x86_64)

rpm -qf /sbin/mingetty

2. 根据当前版本,进入网站http://download.chinaunix.net/,搜索关键字“mingetty”,然后下载对应的源码软件包(由于该网站的相关资源不足,因此就下载mingetty-1.07-5.src.rpm 这个版本,也可在工作站下通过wget 命令直接下载)

wget http://down1.chinaunix.net/distfiles/mingetty-1.07-5.src.rpm

3. 将下载/上传的源码软件包移动到/opt/rh 目录下,然后解压(养成一个分类放置和管理良好的习惯)

mv mingetty-1.07-5.src.rpm /opt/rh
cd /opt/rh
rpm2cpio mingetty-1.07-5.src.rpm |cpio -div
tar -zxvf mingetty-1.07.tar.gz

4. 修改文件mingetty-1.07/mingetty.c 中的代码(设置开机自动登录的用户为XXX,且该用户必须存在):

5. 编译生成mingetty(编译过程需要时间,切勿中断)

cd /opt/rh/mingetty-1.07/ && make

6. 将make 生成的文件mingetty 强制覆盖到/sbin 目录下,至此,mingetty 的源码更改就完成了。

1 cp -f /opt/rh/mingetty-1.07/mingetty /sbin

• 然后,重新编译生成/bin/login程序

  1. 查看当前工作站的/bin/login 所属的软件包及其版本(例如:util-linux-ng-2.17.2-12.14.el6.x86_64)

1 rpm -qf /bin/login

  2. 根据当前版本,进入网站http://download.chinaunix.net/,搜索关键字“util-linux”,然后下载对应的源码软件包(根据当前工作站版本,推荐下载:util-linux-ng-2.17.2.tar.bz2)

1 cd /opt/rh
2 wget http://down1.chinaunix.net/distfiles/util-linux-ng-2.17.2.tar.bz2

  3. 解压下载/上传的源码软件包

1 tar -jxvf util-linux-ng-2.17.2.tar.bz2

  4. 修改文件util-linux-ng-2.17.2/login-utils/login.c 中的代码

  5. 先安装gcc 编译器,然后再编译生成login(编译过程需要时间,切勿中断)

1 yum install gcc
2 gcc -o login login.c ../lib/setproctitle.c checktty.c -Wall -lcrypt -I ../include/

  6. 将生成的文件login 强制覆盖到/bin 目录下,至此,login 的源码更改就完成了。

1 cp -f login /bin/login

  7. 最后就可以重启机器了



RHEL/CentOS纯文本模式下的开机自动登录

时间: 2024-10-17 09:45:14

RHEL/CentOS纯文本模式下的开机自动登录的相关文章

[分享]在ubuntu9.10下实现开机自动登录并运行自己的图形程序

在ubuntu9.10下实现开机自动登录并运行自己的图形界面程序(本人接触ubuntu时日不长,文中一些说法难免有错误和疏漏之处,还请大家不吝批评指正.)实现步骤分以下三大步:1. 实现ubuntu文本形式启动2. 实现ubuntu自动登录3. 实现程序自动运行 一.文本模式启动:两种方法异曲同工:(1) 直接修改/etc/grub/grub.cfg找到类似下面的代码:53 linux /boot/vmlinuz-2.6.31-14-generic root=UUID=0f31592d-e741

[鸟哥的Linux私房菜] X Window 与 纯文本模式的切换

1.  X Window下重启(注销+重新登录) Alt + Ctrl + Backspace 2. X Window与命令行模式的切换 Ctrl + Alt + F1 ~ F6 :文字界面登录 tty1~tty6终端 Ctrl + Alt + F7:图形界面登录 3.  纯文本模式下启动linux,如何启动X Window 如果是以纯文本环境启动linux的话,默认的tty7是没有东西的,并不是图形界面.此时可以在tty1~tty7的任意一个终端使用帐号登录后,执行命令: startx 前提:

Linux文本模式下监听鼠标事件

Linux文本模式下监听鼠标事件,这里是通过gpm这个来实现的,代码如下: 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <unistd.h> 4 #include <gpm.h> 5 6 void main(int argc,char **argv) 7 { 8 fd_set readset; 9 Gpm_Event event; 10 Gpm_Connect conn; 11 12 conn.

RedHat Linux文本模式下乱码解决方法

如果在安装RedHat Linux时选择中文未缺省语言,在文本模式下会出现乱码情况,对于在CLI(command-line interface,命令行界面)方式下调试程序时诸多不便,因为出错信息全是乱码,下面说明乱码问题如何解决: 方法1: 1.locale命令查看当前系统使用的语言 可以看到当前系统使用中文语言 2.export LC_ALL=POSIX修改LC_ALL语言选项 3.locale命令再次查看 可以看到语言设置已修改,但该方法在用户注销或重启后会失效,若要保存设置请看方法2 方法

python交互模式下的tab自动补全

python在交互模式下,输入命令的时候按tab键就按时间tab键的功能输出,在书写python时多有不便. 把下面的代码写入一个文件tab.py,放到/usr/lib/python2.6/site-packages/下 #!/usr/bin/env python import sys import readline import rlcompleter import atexit import os readline.parse_and_bind('tab:complete') histfil

WIN7开机自动登录设置

WIN7开机自动登录设置 1    执行rundll32 netplwiz.dll,UsersRunDll 开始菜单中找到运行并单击运行:如下图1所示                         (图1 开始运行)在弹出的“运行”新窗口中,在打开后面的文本框中输入“rundll32 netplwiz.dll,UsersRunDll”需要说明的是control userpasswords2这些字母不区别大小写(如图2所示).然后直接回车或者按确定键即可调出用户帐号: (图2 运行rundll3

Horizon view client开机自动登录桌面

概述: 为了增强用户体验,某些情况下用户不想通过先登录自己桌面然后开启horizon view client 来登录虚拟桌面,那么我们可以设置开机自动登录. 系统环境:Horizon view client 6+ xp/win7/win8操作系统 开机自动启动horizon view client方法 编写脚本 名称:hideRunFrame.vbs 内容:CreateObject("WScript.Shell").Run"cmd  /c c:\start\ start.ba

Win10如何设置开机自动登录

原文:Win10如何设置开机自动登录 第一步: 小娜搜索"netplwiz",进入用户账户设置. 第二步: 先勾选选中一次,要使用本计算机,用户必须输入用户名和密码. 第三步: 取消勾选,要使用本计算机,用户必须输入用户名和密码,然后点击"应用". 第四步: 在弹出的自动登录框里面,输入登录账号对应的密码,点击确定退出即可. 原文地址:https://www.cnblogs.com/lonelyxmas/p/8566103.html

CentOS单用户模式下修改ROOT密码和grub加密

Linux 系统处于正常状态时,服务器主机开机(或重新启动)后,能够由系统引导器程序自动引导 Linux 系统启动到多用户模式,并提供正常的网络服务.如果系统管理员需要进行系统维护或系统出现启动异常时,就需要进入单用户模式或修复模式对系统进行管理了. 使用单用户模式有一个前提,就是您的系统引导器(grub)能正常工作,否则要进行系统维护就要使用修复模式. 特注:进入单用户模式,没有开启网络服务,不支持远程连接 Linux 系统中不同的运行级别(Run Level)代表了系统的不同运行状态,例如