“Sudo” 是 #Llinux# 平台上的一個非常有用的工具,它允許系統管理員分配給普通用戶一些合理的“權利”,讓他們執行一些只有超級用戶或其他特許用戶才能完成的任務,比如:運行一 些像restart,reboot,passwd之類的命令,或者編輯一些系統配置文件,這樣就不僅減少了root用戶的登陸次數和管理時間,也提高了系統安全性。
sudo 是個統管一切的命令,它的字面意思是代表“超級用戶才能做!”(super user do!)對 linux 系統管理員或高級用戶而言,它是必不可少的最重要的命令之一。
你可曾有過這樣的經歷:在終端中試著運行某個命令,結果卻遇到“拒絕訪問”?
正所謂權力越大責任也越大,與使用根用戶身份登錄,或者使用 su “switch user” 命令,sudo要好得多。
如果你在任何linux命令的前面加上“sudo”這個前綴,那麼它會以提升的權限來運行該命令,執行某些管理任務需要提升的權限。
如果你熟悉 Windows 系統 sudo 與當你試圖處理任何重要操作時,彈出來的 Windows 用戶帳戶控制(ACL)對話框非常相似,在 Windows 中,如果你試圖執行某項管理任務,對話框就會問你是否想繼續執行(“你果真確信想要運行剛才點擊的這個程序嗎?”)確認後執行該任務。 在蘋果 Mac 電腦上會彈出安全對話框要求你輸入密碼。
Linux 系統下要是沒有適當的權限,一些操作會顯得相當怪異,
你在編輯的哪個重要的配置文件可能無法正確保存內容。
你安裝上去的程序可能會拒絕運行。
你已下載、想要編譯的那段出色的源代碼編譯不了。
你要是不走運的話,甚至還會看到“拒絕訪問”或另一個錯誤信息。
使用 sudo 是提升權限的最安全的方法,我們不妨看一下提升權限的另一個方法。
切換用戶命令“su”會要求你輸入根密碼,並且給你一個超級用戶提示符, 以 # 符號表示,這個 # 符號意味著“危險!你已作根用戶登錄上去。”
這個文件可謂是 sudo 的基礎,它控制著誰可以使用 sudo 命令來獲得提升的權限,通常位於 /etc/sudoers 想編輯這個文件,最有效、安全的方式就是使用 visudo 命令。這個命令會以提升權限啟動 vi 編輯器,那樣你就能編輯並保存該文件。
它還會給 sudoers 文件上文件鎖,那樣別人無法編輯該文件,你完成了編輯工作它還會分析文件查找有無簡單的錯誤。使用 visudo 編輯sudo文件要比僅僅使用任何舊的文本編輯器來得安全得多。
sudoers 文件含有許多參數,可以指定哪些用戶或哪些用戶組可以執行哪些命令,我們准備為自己授予訪問 sudo 的權限只要在底部添加:
username ALL=(ALL) ALL //為用戶“username”授予sudo訪問權
%wheel ALL=(ALL) ALL //為屬於wheel用戶組的所有用戶授予sudo訪問權
現在指定的用戶名就能夠使用所有根權限了。
sudo 扮演的角色注定了它要在安全方面格外謹慎,否則就會導致非法用戶攫取 root 權限,同時它還要兼顧易用性,讓系統管理員能夠更有效更方便地使用它。sudo 設計的宗旨是:給用戶盡可能少的權限但仍允許完成他們的工作。所以 sudo 有以下特點:
~end~