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