Linux系統(tǒng)中設(shè)置了7種運行級別,在每種運行級別下所運行的服務(wù)都不相同,其中單用戶模式對應(yīng)的是運行級別為1。在單用戶模式下,系統(tǒng)處于最原始的狀態(tài),所有網(wǎng)絡(luò)服務(wù)都未啟動,所有人都可以直接以Root用戶身份并且無需輸入密碼即可登錄系統(tǒng),所以單用戶模式常被用于修復(fù)各種系統(tǒng)故障。下面以找回Root用戶密碼為例來介紹單用戶模式的使用。
圖1 此時按回車鍵
圖2 追加啟動參數(shù)1
要進入單用戶模式,首先需要將系統(tǒng)重啟,在系統(tǒng)啟動到倒數(shù)計時按下回車鍵(如圖1),此時會出現(xiàn)GRUB引導(dǎo)菜單。
在GRUB引導(dǎo)菜單中按下“a”鍵,可以向系統(tǒng)內(nèi)核kernel追加啟動參數(shù)。
這里向kernel追加啟動參數(shù)“1”(如圖2)。按下回車鍵之后,系統(tǒng)便會啟動進入運行級別1,即單用戶模式。
圖3 為GRUB設(shè)置引導(dǎo)菜單密碼
圖4 系統(tǒng)提示按“p”鍵輸入密碼
在單用戶模式下,用戶無需進行身份驗證,便會自動以Root身份登錄系統(tǒng),從而獲得對系統(tǒng)的最高管理權(quán)限。
由于在RHEL6系統(tǒng)的單用戶模式下默認開啟了SELinux安全設(shè)置,因而無法直接修改Root用戶密碼。我們可以先執(zhí)行“setenforce 0”關(guān)閉SELinux,使之成為“Permissive”許可模式,再使用passwd命令修改Root密碼。
雖然單用戶模式為系統(tǒng)維護帶來了諸多便利,但是其風險也是顯而易見的,如果任何人都可以隨意進入單用戶模式,而Linux服務(wù)器又無法保證物理安全的話,那么將存在很大的安全隱患。因而在生產(chǎn)環(huán)境中通常需要為GRUB引導(dǎo)菜單設(shè)置密碼,通過GRUB密碼阻止非授權(quán)用戶進入單用戶模式,從而增強系統(tǒng)安全性。
另外,如果直接對GRUB進行明文加密也是非常不安全的,所以需要使用MD5對密碼進行加密,相關(guān)命令是grubmd5-crypt。
下面利用grub-md5-crypt命令生成經(jīng)MD5加密后的密碼。
接下來需要修改GRUB的配置文件“/etc/grub.conf”,這里要用到password參數(shù)。將剛才生成的MD5密文復(fù)制下來,再按照“password --md5 MD5密文”的格式在“/etc/grub.conf”文件中設(shè)置密碼。
密碼可以放在“/etc/grub.conf”文件中的任意位置,但放在不同的位置就會在不同的時刻生效。比如將密碼放在“default”參數(shù)所在行的上方,就會在BIOS自檢之后、GRUB引導(dǎo)之前就要求輸入密碼,也就是每次系統(tǒng)啟動或重啟時都會要求輸入密碼。在生產(chǎn)環(huán)境中一般都是將密碼放置在“title”參數(shù)所在行的上方,這樣只有當用戶要進入GRUB引導(dǎo)菜單時才會要求輸入密碼。
修改好的“/etc/grub.conf”文件如圖3所示。
修改完“/etc/grub.conf”文件之后,將系統(tǒng)重啟,再次進入GRUB引導(dǎo)菜單時,會出現(xiàn)圖4所示的提示,要求用戶按“p”鍵輸入密碼。
輸入正確密碼之后,就可以進入GRUB引導(dǎo)菜單了。接下來就可以按照之前的操作,向kernel追加啟動參數(shù),從而進入單用戶模式。