歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Linux 系統命令 sudo使用詳解

Linux 系統命令 sudo使用詳解

日期:2017/8/19 9:47:06   编辑:關於Linux

“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”會要求你輸入根密碼,並且給你一個超級用戶提示符, 以 # 符號表示,這個 # 符號意味著“危險!你已作根用戶登錄上去。”

Suderos 文件

這個文件可謂是 sudo 的基礎,它控制著誰可以使用 sudo 命令來獲得提升的權限,通常位於 /etc/sudoers 想編輯這個文件,最有效、安全的方式就是使用 visudo 命令。這個命令會以提升權限啟動 vi 編輯器,那樣你就能編輯並保存該文件。
它還會給 sudoers 文件上文件鎖,那樣別人無法編輯該文件,你完成了編輯工作它還會分析文件查找有無簡單的錯誤。使用 visudo 編輯sudo文件要比僅僅使用任何舊的文本編輯器來得安全得多。

sudoers 文件含有許多參數,可以指定哪些用戶或哪些用戶組可以執行哪些命令,我們准備為自己授予訪問 sudo 的權限只要在底部添加:
username ALL=(ALL) ALL //為用戶“username”授予sudo訪問權
%wheel ALL=(ALL) ALL //為屬於wheel用戶組的所有用戶授予sudo訪問權
現在指定的用戶名就能夠使用所有根權限了。

Linux 命令 sudo 的幾個選項

  • sudo -b會在後台運行命令。這對顯示許多實時輸出內容的命令來說很有用。
  • sudo -s 會運行以提升權限指定的外殼,為你提供#提示符(別忘了退出!)
  • sudo su 會讓你成為根用戶,並裝入你那些自定義的用戶環境變量。

Linux 命令 sudo 的特點

sudo 扮演的角色注定了它要在安全方面格外謹慎,否則就會導致非法用戶攫取 root 權限,同時它還要兼顧易用性,讓系統管理員能夠更有效更方便地使用它。sudo 設計的宗旨是:給用戶盡可能少的權限但仍允許完成他們的工作。所以 sudo 有以下特點:

  • sudo 能夠限制指定用戶在指定主機上運行某些命令。
  • sudo可以提供日志,忠實地記錄每個用戶使用sudo做了些什麼,並且能將日志傳到中心主機或者日志服務器。
  • sudo為系統管理員提供配置文件,允許系統管理員集中地管理用戶的使用權限和使用的主機,它默認的存放位置是 /etc/sudoers。
  • sudo 使用時間戳文件來完成類似“檢票”的系統。當用戶執行sudo並且輸入密碼後,用戶獲得了一張默認存活期為5分鐘的“入場券”(默認值可以在編譯的時候改變)。超時以後,用戶必須重新輸入密碼。

Linux 命令 sudo 常用參數

  • sudo -h Help 列出使用方法,退出。
  • sudo -V Version 顯示版本信息,並退出。
  • sudo -l List 列出當前用戶可以執行的命令。只有在sudoers裡 的用戶才能使用該選項。
  • sudo -u username|#uid User 以指定用戶的身份執行命令。後 面的用戶是除root以外的,可以是用戶名,也可以 是#uid。
  • sudo -k Kill 清除“入場卷”上的時間,下次再使用sudo時要 再輸入密碼。
  • sudo -K Sure kill 與-k類似,但是它還要撕毀“入場卷”,也 就是刪除時間戳文件。
  • sudo -b command Background 在後台執行指定的命令。
  • sudo -p prompt command Prompt 可以更改詢問密碼的提示語, 其中%u會代換為使用者帳號名稱,%h會顯示主機名稱。 非常人性化的設計。
  • sudo -e file Edit 不是執行命令,而是修改文件相當於命令 sudoedit 。

~end~

Copyright © Linux教程網 All Rights Reserved