你可能聽過這句老話—— “引導訪問 == 路由訪問”..確實如此!任何有權訪問引導加載程序的人都可以輕鬆獲得系統的 root 訪問權限。我發布了一個指南,解釋瞭如何做到這一點 在 Linux 上重置 root 密碼本教程將向您展示如何通過 Grub 引導加載程序輕鬆重置或恢復您的 root 密碼。一旦有人擁有對機器的物理和/或引導加載程序訪問權限,就無法阻止他們。因此,您需要使用強密碼保護 Grub Bootloader 以增加安全性。 如果您是 Linux 管理員,您需要知道如何保護您的引導加載程序。本指南描述瞭如何在 CentOS 上使用密碼保護 Grub 引導加載程序。我在 CentOS 6.x 和 CentOS 7.x 系統上測試了本指南,它的工作原理如下:
用於 RHEL 6.x 和 CentOS 6.x 的受密碼保護的 GRUB 引導加載程序
對於 CentOS 6.x 和 RHEL 6.x 等較舊的 Linux 發行版,Grub 是默認的引導加載程序。本節介紹如何在 CentOS 6.x 系統上設置 grub 密碼。
始終建議在進行任何更改之前備份 GRUB 配置文件。
# cp /etc/grub.conf /etc/grub.conf.bak
首先,您需要加密您的密碼。為此,請以 root 身份登錄到 centos 系統並創建一個名為 . grub
如下。下面顯示的所有命令應按如下方式運行: root
用戶。
# touch grub
然後使用加密的密碼 “”md5crypt
“” 命令。為此,請從終端運行以下命令並按 Enter。
# grub-md5-crypt >grub
輸入您的密碼兩次。請注意,當我在屏幕上輸入密碼時,什麼也沒有顯示。無論如何,輸入密碼並按 Enter,然後重新輸入相同的密碼並按 Enter。
密碼已加密。下一個, /etc/grub.conf
文檔。
開始了, grub.conf
文檔。為此,請使用 grub 打開兩個文件 /etc/grub.conf
文檔。
# vi /root/grub /etc/grub.conf
上面的命令將打開兩個文件 vi
編輯。
您將看到如下所示的加密密碼。移動光標點並將其放在密碼之前。下一個, yy
提取(複製)密碼。
Password: Retype password: $1$Ch0NF/$0XsWw8.EW31vRjm5zsnPb/
下一個, : N (冒號 n)。這將切換到下一個文件。 /etc/grub.conf
..
後部 splashimage=(hd0,0)/grub/splash.xpm.gz
按確定, p
粘貼上一個文件中的加密密碼。
然後按 i
添加一行 password --md5
在加密密碼之前,如下圖所示。
password --md5 $1$I2w2s1$EPZtrLn/h2M4qfh48ZL8O0
有關詳細步驟,請參閱下面的屏幕截圖。

這裡, $1$I2w2s1$EPZtrLn/h2M4qfh48ZL8O0
CentOS 6 系統的加密 grub 密碼。用你自己的替換它。
然後按 結束 進入 :wq
保存並關閉文件。
重新啟動系統。
以後您需要輸入密碼才能編輯 grub 菜單。

按 編輯 Grub 菜單。 p
..系統將提示您輸入密碼。只需輸入您的密碼即可解鎖 Grub 啟動菜單。

您現在可以在 grub 引導菜單中進行必要的更改。

用於 RHEL 7.x 和 CentOS 7.x 的受密碼保護的 GRUB2 引導加載程序
對於 RHEL 7 及其克隆(CentOS 7、Scientific Linux 7 等),Grub2 是默認的引導加載程序。 保護 Grub2 引導加載程序的密碼與 grub 引導加載程序不同。
首先,使用以下命令創建加密密碼 root
用戶:
# grub2-mkpasswd-pbkdf2
樣本輸出:
Enter password: Reenter password: PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.62C46DE64C6BDE39A440092F521F86E24F486F5F9FE58B38D1CA9DDA27D6DDA6A6F5615836537B31AF2D06D2C5A8C6BE26709269A08E81286357501882016523.FD91A05503B0538FBA4CF9783A13727C43917E63528FF9FFC9917E4780B9C420CEDAE98451CF9256BA77AC144FA6734CA193D1E4183AC71E1F297BD7868FFC4B
我創建了一個加密密碼來保護 Grub2 引導加載程序。
如你所知, 不建議 編輯新生成的密碼,直接粘貼到grub2主配置文件中。
相反,您需要將密碼添加到位於以下位置的自定義 Grub2 菜單文件: /etc/grub.d/
創建一個目錄,最後更新 Grub2 主配置文件。 /etc/grub.cfg
..
製作自定義 Grub2 菜單文件的副本。
# cp /etc/grub.d/40_custom /etc/grub.d/40_custom.bak
然後編輯自定義的 Grub2 菜單配置文件如下: root
用戶:
# vi /etc/grub.d/40_custom
添加以下行。確保您粘貼了之前生成的正確密碼。
set superusers="root" password_pbkdf2 root grub.pbkdf2.sha512.10000.62C46DE64C6BDE39A440092F521F86E24F486F5F9FE58B38D1CA9DDA27D6DDA6A6F5615836537B31AF2D06D2C5A8C6BE26709269A08E81286357501882016523.FD91A05503B0538FBA4CF9783A13727C43917E63528FF9FFC9917E4780B9C420CEDAE98451CF9256BA77AC144FA6734CA193D1E4183AC71E1F297BD7868FFC4B

根據 結束 進入 :wq
保存並關閉文件。
然後更新 Grub2 主配置文件。
確保您有 Grub2 主配置文件的備份副本。
# cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
使用以下命令更新 Grub2 引導加載程序配置文件:
# grub2-mkconfig -o /boot/grub2/grub.cfg
樣本輸出:
Generating grub configuration file ... Found linux image: /boot/vmlinuz-3.10.0-327.22.2.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-327.22.2.el7.x86_64.img Found linux image: /boot/vmlinuz-3.10.0-327.13.1.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-327.13.1.el7.x86_64.img Found linux image: /boot/vmlinuz-3.10.0-123.9.3.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-123.9.3.el7.x86_64.img Found linux image: /boot/vmlinuz-3.10.0-123.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-123.el7.x86_64.img Found linux image: /boot/vmlinuz-0-rescue-e250d471d5594282ba042c653cfa0172 Found initrd image: /boot/initramfs-0-rescue-e250d471d5594282ba042c653cfa0172.img done
您可以檢查密碼是否設置正確 /etc/grub2.cfg
這些文件是:
# cat /etc/grub2.cfg
以下是示例輸出。

我們都準備好了。重新啟動系統並確保引導加載程序受密碼保護。
重新啟動系統後,嘗試編輯 Grub2 引導加載程序。為此,請按 e
..

系統將提示您輸入上一步中定義的用戶名和密碼。

輸入正確的用戶名和密碼後,您將能夠編輯 Grub2 引導加載程序。

您已經掌握瞭如何在 Linux 上使用密碼保護 Grub 和 Grub2 引導加載程序。 設置 Grub 密碼可能無法完全保護您的系統。但是,它確實為您的 CentOS Linux 服務器增加了一層安全性。
GRUBGRUB 引導菜單 GRUB2LinuxLinuxAdministrationLinuxhowtoLinux 安全密碼保護GRUBBootloader 安全引導加載程序