我們在運維Linux服務(wù)器中的時候是不是經(jīng)常看到有需要用到的命令su、sudo、sudo su、sudo -i這幾個,有些時候不用還不行,畢竟有些用戶權(quán)限是沒有足夠權(quán)限需要提權(quán)的。但是這幾個命令到底有什么區(qū)別以及如何用呢?在這篇文章中,我們就簡單的梳理。
sudo:暫時切換到超級用戶模式以執(zhí)行超級用戶權(quán)限,提示輸入密碼時該密碼為當(dāng)前用戶的密碼,而不是超級賬戶的密碼。不過有時間限制,Ubuntu默認為一次時長15分鐘。
su:切換到某某用戶模式,提示輸入密碼時該密碼為切換后賬戶的密碼,用法為“su賬戶名稱”。如果后面不加賬戶時系統(tǒng)默認為root賬戶,密碼也為超級賬戶的密碼。沒有時間限制。
Sudo -i:為了頻繁的執(zhí)行某些只有超級用戶才能執(zhí)行的權(quán)限,而不用每次輸入密碼,可以使用該命令。提示輸入密碼時該密碼為當(dāng)前賬戶的密碼。沒有時間限制。執(zhí)行該命令后提示符變?yōu)椤?”而不是“$”。想退回普通賬戶時可以執(zhí)行“exit”或“l(fā)ogout”。
sudo -i直接運行sudo命令加-i參數(shù)
sudo su 運行sudo命令給su命令提權(quán),運行su命令。 。sudo -i運行結(jié)果 PWD=/root
sudo su 運行結(jié)果 PWD=/home/用戶名(當(dāng)前用戶主目錄)
具體的用法:
sudo
sudo是一種權(quán)限管理機制,依賴于/etc/sudoers,其定義了授權(quán)給哪個用戶可以以管理員的身份能夠執(zhí)行什么樣的管理命令;
格式:sudo-u USERNAME COMMAND
默認情況下,系統(tǒng)只有root用戶可以執(zhí)行sudo命令。需要root用戶通過使用visudo命令編輯sudo的配置文件/etc/sudoers,才可以授權(quán)其他普通用戶執(zhí)行sudo命令。
sudo的運行有這樣一個流程:
1).當(dāng)用戶運行sudo時,系統(tǒng)于/etc/sudoers文件里查找該用戶是否有運行sudo的權(quán)限;
2).若用戶具有可運行sudo的權(quán)限。那么讓用戶輸入用戶自己的password,注意這里輸入的是用戶自己的password.
3).假設(shè)password正確。進行sudo后面的命令,root運行sudo是不須要輸入password的,切換到的 身份與運行者身份同樣的時候。也不須要輸入password。
su
su為switch user,即切換用戶的簡寫。
su是最簡單的身份切換名,用su我們能夠進行不論什么用戶的切換,一般都是su — username,然后輸入password就ok了,可是root用su切換到其它身份的時候是不須要輸入password的。
格式為兩種:
su —I USERNAME(—l為login,即登陸的簡寫)
su USERNAME
如果不指定USERNAME (用戶名) ,默認即為root,所以切換到root的身份的命令即為: su —root或su—,su root 或su。
su USERNAME,與su— USERNAME的不同之處如下:
su—USERNAME切換用戶后,同時切換到新用戶的工作環(huán)境中。
su USERNAME切換用戶后,不改變原用戶的工作目錄,及其他環(huán)境變量目錄。
su-
su -, su -I或su -login 命令改變身份時,也同時變更工作目錄,以及HOME, SHELL, USER, LOGNAME。此外,也會變更PATH變量。用su—命令則默認轉(zhuǎn)換成成root用戶了。
而不帶參數(shù)的“su命令”不會改變當(dāng)前工作目錄以及HOME,SHELL,USER,LOGNAME。只是擁有了root的權(quán)限而已。
注意:su -使用root的密碼,而sudo su使用用戶密碼