Linux系統(tǒng)下如何利用sudo命令提高權(quán)限
Linux系統(tǒng)下如何利用sudo命令提高權(quán)限
作為一個(gè)Linux系統(tǒng)管理員,或者剛剛?cè)腴T(mén)的初學(xué)者們,sudo命令是必須要知道的,那么sudo命令是什么命令呢?又有什么作用,隨學(xué)習(xí)啦小編一起來(lái)了解下吧。
sudo是個(gè)統(tǒng)管一切的命令。它的字面意思是代表“超級(jí)用戶才能做!”(super user do!)對(duì)Linux系統(tǒng)管理員或高級(jí)用戶而言,它是必不可少的最重要的命令之一。你可曾有過(guò)這樣的經(jīng)歷:在終端中試著運(yùn)行某個(gè)命令,結(jié)果卻遇到“拒絕訪問(wèn)”?這個(gè)就是你所需要的命令!但正所謂,權(quán)力越大,責(zé)任也越大!較之以根用戶身份登錄,或者使用 su “switch user” 命令,sudo要好得多。請(qǐng)耐心讀下去,看看sudo能為你做些什么!
sudo:它有什么用途?
那么,sudo實(shí)際能做些什么呢?如果你在任何Linux命令的前面加上“sudo”這個(gè)前綴,那么它會(huì)以提升的權(quán)限來(lái)運(yùn)行該命令。執(zhí)行某些管理任務(wù)需要提升的權(quán)限。有一天,你可能想運(yùn)行一臺(tái)LAMP(Linux Apache MySQL PHP)服務(wù)器,又要手動(dòng)編輯配置文件。你可能還要重新啟動(dòng)或重置Apache Web服務(wù)器或者是其他服務(wù)后臺(tái)程序。你甚至需要提升的權(quán)限來(lái)關(guān)閉或重新計(jì)算機(jī)。“嘿,誰(shuí)關(guān)閉了這臺(tái)機(jī)子?”
如果你熟悉Windows,sudo與當(dāng)你試圖處理任何重要操作時(shí),彈出來(lái)的Windows用戶帳戶控制(ACL)對(duì)話框非常相似,只是不如后者來(lái)得友好。在Windows中,如果你試圖執(zhí)行某項(xiàng)管理任務(wù),對(duì)話框就會(huì)問(wèn)你是否想繼續(xù)執(zhí)行(“你果真確信想要運(yùn)行剛才點(diǎn)擊的這個(gè)程序嗎?”)隨后執(zhí)行該任務(wù)。在Mac機(jī)器上,一個(gè)安全對(duì)話框會(huì)彈出來(lái),要求你輸入密碼,并點(diǎn)擊“確定”。
而Linux方面顯得更有戲劇性。要是沒(méi)有適當(dāng)?shù)臋?quán)限,一些操作會(huì)顯得相當(dāng)怪異。你在編輯的那個(gè)重要的配置文件可能無(wú)法正確保存內(nèi)容。你安裝上去的那個(gè)程序可能就是拒絕運(yùn)行。你已下載、想要編譯的那段出色的源代碼編譯不了。你要是不走運(yùn)的話,甚至還會(huì)看到“拒絕訪問(wèn)”或另一個(gè)錯(cuò)誤信息。你最擔(dān)心的種種情況都變成了現(xiàn)實(shí),但你要做的就是請(qǐng)求權(quán)限!這就是為什么我們?cè)趫?zhí)行像下面這種操作時(shí),應(yīng)該牢記事先請(qǐng)求超級(jí)用戶權(quán)限:
sudo reboot
在這個(gè)屏幕截圖中看看如果我們沒(méi)有先借助sudo提升權(quán)限,會(huì)出現(xiàn)什么情況:
首先,我們使用重啟命令嘗試重啟系統(tǒng)。該命令沒(méi)有提到:“必須是超級(jí)用戶”。然后,我們?cè)囍胹udo重啟。sudo要求你提供用戶密碼。請(qǐng)注意:它要求你提供的是你的密碼,而不是根密碼。最后,我們看到表明現(xiàn)在將重啟系統(tǒng)的廣播信息。sudo就像是個(gè)神奇的命令,會(huì)發(fā)出神奇的指令。
Suderos文件
這個(gè)文件可謂是sudo的基礎(chǔ)。它控制著誰(shuí)可以使用sudo命令來(lái)獲得提升的權(quán)限。它通常位于/etc/sudoers。想編輯這個(gè)文件,最有效最安全的方式就是,使用visudo命令。這個(gè)命令會(huì)以提升權(quán)限啟動(dòng)vi編輯器,那樣你就能編輯并保存該文件。它還會(huì)給sudoers文件上文件鎖,那樣別人無(wú)法編輯該文件。一旦你完成了編輯工作,它會(huì)分析文件,查找有無(wú)簡(jiǎn)單的錯(cuò)誤。編輯sudo文件要比僅僅使用任何舊的文本編輯器來(lái)得安全得多。
該文件含有許多參數(shù)。你可以指定哪些用戶或哪些用戶助可以執(zhí)行哪些命令。我們準(zhǔn)備為自己授予訪問(wèn)sudo的權(quán)限,為此只要在底部添加:
username ALL=(ALL) ALL //為用戶“username”授予sudo訪問(wèn)權(quán) %wheel ALL=(ALL) ALL //為屬于wheel用戶組的所有用戶授予sudo訪問(wèn)權(quán)
現(xiàn)在指定的用戶名就能夠使用所有根權(quán)限了。你還可以允許某個(gè)用戶或用戶組只對(duì)特定服務(wù)或服務(wù)器擁有sudo訪問(wèn)權(quán),以取代ALL參數(shù),不過(guò)那是另一個(gè)話題了。
幾個(gè)選項(xiàng)
與任何優(yōu)秀的命令一樣,也有幾個(gè)很棒的選項(xiàng)可以讓sudo處理更多的事務(wù)。
sudo -b會(huì)在后臺(tái)運(yùn)行命令。這對(duì)顯示許多實(shí)時(shí)輸出內(nèi)容的命令來(lái)說(shuō)很有用。
sudo -s 會(huì)運(yùn)行以提升權(quán)限指定的外殼,為你提供#提示符(別忘了退出!)
sudo su -會(huì)讓你成為根用戶,并裝入你那些自定義的用戶環(huán)境變量。
為什么sudo比另一個(gè)辦法更好?
sudo是提升權(quán)限的最出色、最安全的方法。我們不妨看一下提升權(quán)限的另一個(gè)方法。作為切換用戶命令,“su”會(huì)要求你輸入根密碼,并且給你一個(gè)超級(jí)用戶提示符,以#符號(hào)表示。這個(gè)#符號(hào)意味著“危險(xiǎn)!你已作根用戶登錄上去!”你下達(dá)的第一個(gè)命令也許順利執(zhí)行完畢。但是你一旦忘了,會(huì)繼續(xù)以根用戶身份登錄。要是打錯(cuò)一個(gè)字,就完蛋了!你清除了整個(gè)硬驅(qū),而不是清除你下載的那個(gè)盜版mp3文件。你的Web服務(wù)器和家庭公司統(tǒng)統(tǒng)不見(jiàn)了!如果是sudo,你就得在每一個(gè)命令之前輸入“sudo”。因而,你沒(méi)必要記得切回到常規(guī)用戶模式,那樣發(fā)生的事故就會(huì)更少。
有沒(méi)有現(xiàn)在就用它?
我們想要運(yùn)行重要任務(wù)時(shí),sudo提供了安全的提升權(quán)限。在Ubuntu用戶當(dāng)中,它也許是使用最廣泛、功能最強(qiáng)大的命令,因?yàn)樗殉蔀樵摪l(fā)行版中的首選方法。既然你擁有了這么大的權(quán)利,那么在運(yùn)行命令時(shí)務(wù)必要做到安全!世上可沒(méi)有su-undo撤銷(xiāo)命令!
上面就是Linux sudo命令的用途介紹了,在Linux命令前面加上sudo就可以提升權(quán)限來(lái)運(yùn)行命令,簡(jiǎn)單又實(shí)用,你學(xué)會(huì)了嗎?