CentOS 6的开机流程及root密码破解

一、CentOS 6的开机流程详解

启动流程详解

1、POST:

   Power-On-Self-Test,加电自检,是BIOS功能的一个主要部分。负责完成对CPU、主板、内存、硬盘子系统、显示子系统、串并行接口、键盘、CD-ROM光驱等硬件情况的检测。

2、BootSequence(BIOS):

   决定那个磁盘设备是引导加载次序的设备。

3、BootLoader(MBR):

   MBR记录一般是在磁盘 0 磁道 1 扇区,共512个字节。前446个字节是BootLoder,后 4*16 的 64 个字节是存放分区信息的,最后 2 个字节是校验信息,一般是 55AA。

4、GRUB、加载kernel

  kernel自身初始化:

   <1> 探测可识别到的所有硬件设备

   <2> 加载硬件驱动程序(可能借助于ramdisk加载驱动)

   <3> 以只读方式挂载根文件系统

   <4> 运行用户空间的第一个应用程序:/sbin/init

5、挂载根文件系统rootfs

   以只读方式挂载临时根文件系统

6、运行/sbin/init程序

   centos5:

      SysV:配置文件:/etc/inittab

   CentOS6:

      Upstart:配置文件:/etc/inittab, /etc/init/*.conf

   CentOS7:

      Systemd:配置文件:/usr/lib/systemd/system,/etc/systemd/system

CentOS5、6大概的启动流程步骤

  1. 加载BIOS的硬件信息,获取第一个启动设备

  2. 读取第一个启动设备MBR的引导加载程序(grub)的启动信息

  3. 加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备

  4. 核心执行init程序,并获取默认的运行信息

  5. init程序执行/etc/rc.d/rc.sysinit文件

  6. 启动核心的外挂模块(/etc/modprobe.conf)

  7. Init执行运行的各个批处理文件(scripts)

  8. Init执行/etc/rc.d/rc.local

  9. 执行/bin/login程序,等待用户登录

  10. 登录之后开始以Shell控制主机

blob.png

二、破解centos5,6 的root口令

在实际生产环境中,管理员有时候会忘记root的密码,而下面讲的是如何破解root的秘密的:

1、重启机子,显示该界面后,直接敲"Esc"键或者敲"e"键

blob.png

2、在该界面直接选中要启动的"kernel"版本,直接敲"e"键

blob.png

3、选中kernel启动项,直接敲"e"键进行编辑

blob.png

4、在该编辑的文本界面下,空格后输入"1"或者"s或S"都是进行单用户模式(也就是root单个用户文本界面模式,无需输入密码),在这里我直接输入"1"键,之后回车,跳回上一级界面

blob.png

5、发现回到上一级界面后,下面有提示,如何操作,直接敲"b"键就是进入单用户模式了

blob.png

6、在但单用户模式下属于root权限,直接更改root的密码即可,更改完毕后,无需重启电脑,直接使用命令"init #"(#代表启动级别为:0-6)跳到你想使用的级别下,我这里跳入的是文本界面

blob.png

7、跳入级别3后,直接键入管理员名称与密码即可登录

blob.png

总结:此种法则也适用centos5。

三、编写centos5,6的服务脚本

1、直接在启动服务脚本的目录下编辑

blob.png

2、服务脚本格式

blob.png

3、服务脚本内容

[root@CentOS6 ~]# cat /etc/rc.d/init.d/testsrv.sh
#!/bin/bash
#
# chkconfig: - 88 12
# description: test service script
#
prog=$(basename $0)
lockfile=/var/lock/subsys/$prog

start() {
	if [ -e $lockfile ]; then
	  echo "$prog is aleady running."
	  return 0
	else
	  touch $lockfile
	  [ $? -eq 0 ] && echo "Starting $prog finished."
	fi
}

stop() {
	if [ -e $lockfile ]; then
	  rm -f $lockfile && echo "Stop $prog ok."
	else
	  echo "$prog is stopped yet."
fi
}

status() {
	if [ -e $lockfile ]; then
	  echo "$prog is running."
	else
	  echo "$prog is stopped."
fi
}

usage() {
	  echo "Usage: $prog {start|stop|restart|status}"
}

if [ $# -lt 1 ]; then
	  usage
	  exit 1
fi    

case $1 in
start)
	start
;;
stop)
	stop
;;
restart)
	stop
	start
;;
status)
    status
;;
*)
    usage
esac

4、给服务脚本添加执行权限,并将该脚本添加到开机启动级别中

blob.png

5、将服务脚本设置为开机级别3-5为开启状态,并查看相应的服务(文件名称"S88testsrv.sh"链接指向也就也是新建的服务脚步)

blob.png

6、服务脚本命名方式

   为何命名的数字是88呢,实际是因为新建的服务脚本中的定义的,其中的"chkconfig: – 88 12"各代表的是"-"代表开机所有的级别为"off",如果直接编辑数字表示为"on","88"代表

为开机启动的优先级,"12"表示关机的优先级,两者是类似反比的关机,其中一个大,另一个必然是小的,为何会这样呢,是因为开机中有些服务依赖其他服务的原因,而开机先启动被依赖

的服务,而关机是反之亦然。

blob.png

7、测试服务脚本

blob.png

四、作业:

1、每周2, 4, 7备份/var/log/messages文件至/logs目录中,文件名形如“messages-yyyymmdd”

[root@CentOS6 ~]# mkdir /logs    #创建需要存放备份的目录
[root@CentOS6 ~]# crontab -e     #填写每周2,4,7备份任务
[root@CentOS6 ~]# crontab -l
* * * * 0,2,4 /bin/cp -f /var/log/messages /logs/messages-`date \+\%Y\%m\%d`    #查看任务

2、每两小时取出当前系统/proc/meminfo文件中以S或M开头的信息追加至/tmp/meminfo.txt文件中

[root@CentOS6 ~]# crontab -e     #新增每两个小时备份任务
crontab: installing new crontab
[root@CentOS6 ~]# crontab -l
* * * * 0,2,4 /bin/cp -f /var/log/messages /logs/messages-`date \+\%Y\%m\%d`
* 2 * * * /bin/egrep '^[S|M]' /proc/meminfo >> /tmp/meminfo.txt
[root@CentOS6 ~]#

原创文章,作者:Aleen,如若转载,请注明出处:http://www.178linux.com/45516

(0)
AleenAleen
上一篇 2016-09-13 20:43
下一篇 2016-09-13 20:58

相关推荐

  • 逻辑卷管理(LVM)

    逻辑卷管理(LVM) LVM概念 是系统上对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上的一个逻辑层,用来提高磁盘分区管理的灵活性。 安装Linux系统时,最常见的问题是如何评估各分区大小,以分配合适的硬盘空间。随着LVM的出现,这些问题都引刃而解了,用户在无需停机的情况下方便地情况下方便的调整个分区的大小。 LVM重点在于可以弹性的调整文件系统的容量…

    Linux干货 2016-11-22
  • 系统启动和内核管理

    Linux组成 Linux:kernel+rootfs kernel:进程管理、内存管理、网络管理、驱动程序、文件系统、安全功能 rootfs:程序和glibc 库:函数集合,function,调用接口(头文件负责描述) 过程调用:procedure,无返回值; 函数调用:function;有返回值,可以赋值于变量中; 程序:二进制执行文件 包括根目录以及包…

    Linux干货 2017-05-14
  • linux 文本处理工具 grep cut sort等

    linux day 7 间歇性回忆 自动属于这个组 是  SGID 的功能 chmod g+s /data/testdir setfacl —m g:g2:rwx /data/testdir setfacl -m b:g:g2:rwx /data/testdir setfacl -m d:g:g3:r testdir chmod o= testdi…

    Linux干货 2016-08-08
  • bash的基础特性之一

    bash的基础特性之一 命令历史:shell进程会保存会话中此前用户使用过的命令; history:命令的用法 history 【-c】【-d #】 【n】或者【文件名】     -c:清空命令历史     -d 【#】:删除指定的命令历史…

    Linux干货 2016-12-18
  • 管理分区和文件系统及挂载设备

    管理分区 列出块设备 lsblk       分区工具fdisk fdisk -l /dev/sdX 查看硬盘分区信息 CentOS7: fdisk -l /dev/sda 默认开启dos及扇区显示模式    开启dos及柱面显示模式:fdisk -c=dos -u=cylinders -l /dev/sda…

    2017-08-26
  • 一起学DNS系列(十三)图文详说A、CNAME、MX和NS记录

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://jeffyyko.blog.51cto.com/28563/226194    前面用了12个小节对DNS的基础、以及Windows的DNS系统作了较详细的描述,下面的几节主要是说一些有关DNS应用方面…

    2015-03-18