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.www58058.com/45516

(0)
AleenAleen
上一篇 2016-09-13
下一篇 2016-09-13

相關推薦

欧美性久久久久