全部課程
如何獲取linux系統(tǒng)root權(quán)限
發(fā)布時(shí)間: 2021-06-22
如何獲取linux系統(tǒng)root權(quán)限?在Windows系統(tǒng)中,為了管理方便,通常都是以administrator用戶直接登陸系統(tǒng),以履行系統(tǒng)管理員職責(zé)。在Linux中,系統(tǒng)的超級(jí)管理員是root用戶,具有系統(tǒng)的全部權(quán)限。
Linux的普通用戶,對(duì)自己創(chuàng)建的文件具有完全的訪問(wèn)權(quán),也可以控制可移動(dòng)設(shè)備,如u盤(pán)、移動(dòng)硬盤(pán)等。但執(zhí)行諸如安裝或刪除軟件以及管理系統(tǒng)文件和目錄等任務(wù),必須將特權(quán)升級(jí)到root用戶。
由于root用戶擁有足以破壞系統(tǒng)的無(wú)限制權(quán)限:刪除文件和目錄、刪除用戶賬戶,以及添加后門(mén)程序等。
日常聽(tīng)說(shuō)的某程序員“刪庫(kù)跑路”,其實(shí)就是使用root賬戶,執(zhí)行rm -rf / 命令,刪除系統(tǒng)中的所有文件和數(shù)據(jù)。如果root賬戶泄露,則其他人就有可能擁有系統(tǒng)的管理控制權(quán)限。因此在Linux中,不建議以root用戶直接登陸系統(tǒng)。
大多數(shù)系統(tǒng)管理員都作為無(wú)特權(quán)的用戶登陸,僅在需要時(shí)通過(guò)各種工具臨時(shí)獲得root特權(quán)。
【切換用戶】
su命令可以從當(dāng)前用戶切換到另一個(gè)用戶。如果從當(dāng)前用戶賬戶直接運(yùn)行su命令,默認(rèn)是切換到root賬戶,會(huì)提示輸入root用戶的密碼:
[test@iCentOS ~]$ su Password: [root@iCentOS test]#
su還可以切換到其他普通用戶,需要以要登陸的用戶名作為參數(shù):
su和su - 的區(qū)別,先上圖:
在第一張圖中,使用su來(lái)切換到root賬戶,但是紅線部分顯示的還是test用戶的shell,這說(shuō)明root用戶僅僅以root身份啟動(dòng)了shell,但使用的卻是test用戶的環(huán)境設(shè)置。
第二張圖中,使用su - 切換到root賬戶,紅線部分顯示的已變成了root賬戶的shell,這就相當(dāng)于以root身份重新登陸系統(tǒng)一樣,使用的也是root賬戶的環(huán)境設(shè)置。
因此,在實(shí)踐中,也建議用su - 命令來(lái)切換用戶,以啟動(dòng)包含目標(biāo)用戶環(huán)境設(shè)置的shell。
【sudo】
在紅帽系Linux系統(tǒng)中,會(huì)配置root用戶。如果需要安裝或刪除軟件以及進(jìn)行系統(tǒng)管理,可以切換到root用戶。配置完成后exit到普通用戶即可。但是在ubuntu系Linux中,默認(rèn)是沒(méi)有配置root用戶密碼的,這也是從安全角度來(lái)設(shè)置的。在這種情況下,用戶無(wú)法使用密碼直接以root身份登陸系統(tǒng),也不能使用su獲取交互式shell。普通用戶用于獲取root訪問(wèn)權(quán)限的工具是sudo。
與su不同,sudo通常要求用戶輸入自己的密碼以進(jìn)行身份驗(yàn)證。即,用戶使用sudo以root運(yùn)行命令時(shí),不需要root密碼,他們將使用自己的密碼來(lái)驗(yàn)證訪問(wèn)權(quán)限。
【配置sudo】
sudo的主配置文件為/etc/sudoers??梢栽趓oot賬戶下,通過(guò)編輯sudoers文件來(lái)為某些用戶添加特權(quán)權(quán)限。
如圖片中第二行、第三行、最后一行所示,要為用戶添加特別權(quán)限,只需要指定三部分即可:用戶名或組名、允許登陸的主機(jī)及授權(quán)用戶或組、可執(zhí)行的命令。
1.用戶名:不以%開(kāi)頭的表示將要授權(quán)的用戶,如圖中的root和botee;以%開(kāi)頭的表示將要授權(quán)的組,如圖中的%wheel組。
2.允許登陸的主機(jī)及授權(quán)用戶或組:用戶可以從哪些主機(jī)上登陸到本服務(wù)器來(lái)執(zhí)行sudo命令。第一個(gè)ALL指的是所有主機(jī),第二個(gè)ALL指的是可以提權(quán)到所有用戶或用戶組。例如:test labENV=(root)表示普通用戶test可以在labENV主機(jī)上登陸到服務(wù)器,并以root用戶執(zhí)行命令。
3.可執(zhí)行的命令:這里需要寫(xiě)可執(zhí)行命令的絕對(duì)路徑,如/us/sbin/useradd, /usr/bin/install等。同時(shí)可以在命令前加NOPASSWD選項(xiàng),以允許用戶在不輸入密碼的前提下以其他身份執(zhí)行命令。需要注意的是,NOPASSWD后面必須加冒號(hào)(:)再接命令的絕對(duì)路徑??赡艿氖纠缦拢?/p>
test ALL=(ALL) ALL //允許test用戶從任意主機(jī)登陸到本服務(wù)器的任意用戶且可以執(zhí)行任意命令 test ALL=(root) ALL //允許test用戶從任意主機(jī)登陸到本服務(wù)器的root賬戶且可以執(zhí)行任意命令 test labENV=(root) ALL //允許test用戶從LabENV主機(jī)登陸到本服務(wù)器的root賬戶且可以執(zhí)行任意命令 test labENV=(root) NOPASSWD:/usr/bin/install, /usr/sbin/useradd
//允許test用戶從labENV主機(jī)登陸到本服務(wù)器的root賬戶且僅可以執(zhí)行install和useradd命令
執(zhí)行install命令時(shí)不需要輸入密碼。 %test ALL=(ALL) ALL //對(duì)test組進(jìn)行提權(quán)