Linux學習之CentOS(二十二)–單一使用者模式下修改Root使用者的密碼Linux學習之CentOS(二十一)–Linux系統啟動詳解

來源:互聯網
上載者:User

在上一篇隨筆裡面詳細講解了Linux系統的啟動過程 (Linux學習之CentOS(二十一)--Linux系統啟動詳解),我們知道Linux系統的啟動層級一共有6種層級,通過 /etc/inittab 這個檔案我們就能看到:

[root@xiaoluo ~]# cat /etc/inittab# inittab is only used by upstart for the default runlevel.## ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.## System initialization is started by /etc/init/rcS.conf## Individual runlevels are started by /etc/init/rc.conf## Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf## Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,# with configuration in /etc/sysconfig/init.## For information on how to write upstart event handlers, or how# upstart works, see init(5), init(8), and initctl(8).## Default runlevel. The runlevels used are:#   0 - halt (Do NOT set initdefault to this)#   1 - Single user mode#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)#   3 - Full multiuser mode#   4 - unused#   5 - X11#   6 - reboot (Do NOT set initdefault to this)# id:5:initdefault:

這裡我們看到系統的預設啟動層級是5,也就是有圖形介面的那個。

但是在現實生活中可能會出現這種問題,我們可能忘記了一台主機的root密碼,但是我們又需要通過root使用者登入該系統去處理一些事情,這個時候我們怎麼辦呢?我們看到在Linux的啟動層級中有一個單一使用者模式啟動,也就是啟動層級1,當我們如果忘記了root使用者的秘密,但是又需要修改root密碼的時候,這個時候我們就要通過在啟動的時候給系統的核心傳遞一個參數 1 或者 single 來告訴核心,我需要以單一使用者模式登陸作業系統,這個時候我們就能能夠通過passwd 命令來重設root使用者的密碼。具體操作是怎樣的呢?咱們有圖有有真像!!

首先我們重啟我們的系統(我這裡是CentOS),然後在介面啟動時讓它停留一下,隨便按一下鍵盤上的一個鍵,此時就會進入到作業系統配置引導介面

 

還記得上一篇隨筆裡面/boot/grub/grub.conf這個檔案裡的第一個 title 欄位嗎? 沒錯,每一個title都是一個作業系統的配置選項,這裡我們只有一個,也就是上面圖片顯示的那個,如果有多個title欄位,這裡就會列出來供我們選擇不同的作業系統。

好了,通過下面的英文提示我們發現按下鍵盤上的 e 鍵就可以進入到編輯介面

 

看到這個介面是不是很熟悉呢?沒錯,這三個選項就是我們 /boot/grub/grub.conf 檔案裡的配置資訊,我們通過查看這個檔案的內容來看一下:

[root@xiaoluo ~]# cat /boot/grub/grub.conf# grub.conf generated by anaconda## Note that you do not have to rerun grub after making changes to this file# NOTICE:  You do not have a /boot partition.  This means that#          all kernel and initrd paths are relative to /, eg.#          root (hd0,1)#          kernel /boot/vmlinuz-version ro root=/dev/sda2#          initrd /boot/initrd-[generic-]version.img#boot=/dev/sdadefault=0timeout=5splashimage=(hd0,1)/boot/grub/splash.xpm.gzhiddenmenutitle CentOS (2.6.32-358.el6.x86_64)        root (hd0,1)        kernel /boot/vmlinuz-2.6.32-358.el6.x86_64 ro root=UUID=6e24ec7a-2d19-466e-bacc-92750b1f4bef rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet        initrd /boot/initramfs-2.6.32-358.el6.x86_64.img

這時我們需要將游標移動到第二個選項,也就是Linux核心那裡,同樣按下鍵盤上的 e 鍵進入到編輯介面,此時我們在後面追加參數 1 或者參數 single就可以告訴Linux系統的核心,我需要以單使用者的模式登陸該系統。

然後我們斷行符號,進入到上層的介面,此時按下鍵盤上的 b 鍵就是啟動作業系統,此時我們的Linux作業系統就是以單使用者的模式登陸了。我們發現系統非常快速的就進入到了命令列模式下的介面,因為單一使用者模式是不會啟動任何服務的,同時也不需要輸入root密碼,就能直接進入到root使用者下,此時我們就可以通過passwd 命令來重設我們的root使用者的密碼

 

然後我們通過exit命令就可以退出單一使用者模式,此時作業系統核心就會根據我們之前看到的 /etc/inittab 設定檔中設定的預設啟動層級來啟動。

這樣我們就可以通過在進入GRUB引導時在核心參數裡面追加參數 1 或者 single 來進入單一使用者模式來修改我們的root使用者密碼。

但是,請注意,因為上面的操作只需要通過單一使用者模式就可以修改我們的root使用者密碼,所以說一旦別人有機會接觸到我們的伺服器主機,那麼root使用者的密碼就很容易被別人修改了,這樣當然是非常的不安全的,所以我們還是需要通過GRUB加密來對開啟一層密碼防護。

通過在 /boot/grub/grub.conf 啟動配置中加入以下類似的代碼來對grub進行加密:

password --md5 $1$6H92B1$PzoPV63kTMk4uEhZQTAZ//

其中後面那一串是MD5密碼編譯演算法,這個我們可以通過 grub-md5-crypt 這個命令來產生加密後的演算法

[root@xiaoluo ~]# grub-md5-crypt Password: Retype password: $1$UGA2B1$DriIdrVTEgVg95fHHX4H./[root@xiaoluo ~]# 

在上面的Password、Retype password那裡輸入我們需要設定的密碼,然後就能產生MD5演算法加密後的密碼,我們將這個加密後的密碼添加到

/boot/grub/grub.conf 這個設定檔裡即可,例如:

[root@xiaoluo ~]# vi /boot/grub/grub.conf password --md5 $1$UGA2B1$DriIdrVTEgVg95fHHX4H./# grub.conf generated by anaconda## Note that you do not have to rerun grub after making changes to this file# NOTICE:  You do not have a /boot partition.  This means that#          all kernel and initrd paths are relative to /, eg.#          root (hd0,1)#          kernel /boot/vmlinuz-version ro root=/dev/sda2#          initrd /boot/initrd-[generic-]version.img#boot=/dev/sdadefault=0timeout=5splashimage=(hd0,1)/boot/grub/splash.xpm.gzhiddenmenutitle CentOS (2.6.32-358.el6.x86_64)        root (hd0,1)        kernel /boot/vmlinuz-2.6.32-358.el6.x86_64 ro root=UUID=6e24ec7a-2d19-466e-bacc-92750b1f4bef rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet        initrd /boot/initramfs-2.6.32-358.el6.x86_64.img

這個時候我們再次重啟一下系統,試著進入到GRUB裡面來看看,

0

我們發現下面的英文提示已經變了,之前可以按鍵盤上的 e 鍵進入到GRUB裡面,現在按 e 鍵已經沒用了,此時提示我們按 p 鍵來輸入GRUB的密碼才能進入到GRUB裡面

 

此時我們輸入之前設定的GRUB密碼即可,然後介面就會進入到我們熟悉的修改GRUB那裡了。

所以說通過GRUB的密碼編譯演算法我們可以對進入GRUB進行加密,這樣就能防止別人惡意進入單一使用者模式,從而修改root密碼了!!

當然,如果我們連這個GRUB的秘密都忘記的話,並且又忘記了root密碼,那就真的不能登陸到root使用者了。。。。

 

本篇隨筆主要記錄了如何通過單一使用者模式來修改root使用者的密碼,並通過設定grub的MD5密碼編譯演算法來對進入grub進行加密,從而限制別人輕易進入單一使用者模式,在以後的學習Linux過程中,將繼續記錄學習Linux的心得!!!!

您可以通過點擊 右下角 的按鈕 來對文章內容作出評價, 也可以通過左下方的 關注按鈕 來關注我的部落格的最新動向。 如果文章內容對您有協助, 不要忘記點擊右下角的 推薦按鈕 來支援一下哦   如果您對文章內容有任何疑問, 可以通過評論或發郵件的方式聯絡我: 501395377@qq.com  / lzp501395377@gmail.com

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.