Centos7.4 修改Root密碼

Centos7.4 修改Root密碼

1.修改思路

systemd 的管理機制中,rescure 模式和 emeryency 模式是沒法直接取得 root 權限的,須要使用 root 密碼才能進入 rescure 和 emeryency 環境。因此咱們須要經過其餘方式來設置 root 密碼。咱們能夠爲內核的啓動指定 "rd.break" 參數,從而讓系統在啓動的早期停下來,此時咱們能夠經過使用 root 權限並結合 chroot 命令完成設置 root 密碼的操做。
下面咱們一塊兒來看具體的操做過程。node

在系統啓動過程當中進入開機菜單時按下字母鍵 e 進程開機菜單的編輯模式:linux

Centos7.4 修改Root密碼

這就是系統的開機菜單,按下 e 後進入編輯界面:
Centos7.4 修改Root密碼centos

找到以 "linux16 /vmlinuz-" 開頭的行。若是默認沒有看到該行,須要按向下鍵把它滾動出來。
而後定位到該行結尾處,輸入一個空格和字符串 "rd.break",以下圖所示:
Centos7.4 修改Root密碼app

接着按下 ctrl + x 以該設置繼續啓動,啓動過程當中操做系統會停下來,這是系統啓動過程當中的一個很是早的時間點:
Centos7.4 修改Root密碼ide

因此係統的根目錄還掛載在 RAM disk 上(就是內存中的一個文件系統),咱們能夠經過 mount 命令檢查系統當前掛載的文件系統,下面是咱們比較關心的兩條:操作系統

Centos7.4 修改Root密碼

上圖中 mount 命令輸出的第一行說明此時的根目錄在一個 RAM disk 中, 即 rootfs。
圖中輸出的第二行說明咱們的文件系統此時被掛載到了 /sysroot 目錄,而且是隻讀的模式:code

/dev/mapper/centos-root on /sysroot type xfs (ro,relatime,attr2,inode64,noquota)

而在咱們正常登錄系統的狀況下,系統根目錄的掛載狀況以下:blog

/dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

該時間點的最大優點是咱們具備 root 權限!因此讓咱們開始設置新的 root 密碼吧。進程

先經過下面的命令把 /sysroot 從新掛載爲可讀寫的模式:內存

switch_root:/# mount -o remount,rw /sysroot

而後用下面 chroot 命令把根目錄切換到咱們原來的環境中:

switch_root:/# chroot /sysroot

用下面的命令爲 root 用戶設置新的密碼:

sh-4.2# echo "new_root_pw" | passwd --stdin root

接下來還要處理 SELinux 相關的問題。因爲當前的環境中 SELinux 並未啓動,因此咱們對文件的修改可能形成文件的 context 不正確。爲了確保開機時從新設定 SELinux context,必須在根目錄下添加隱藏文件 .autorelabel:

sh-4.2# touch .autorelabel

最後從 chroot 中退出,並重啓系統:

sh-4.2# exit
switch_root:/# reboot

從新進入登錄界面時就可使用剛纔設置的密碼以 root 登錄了!

相關文章
相關標籤/搜索