ubuntu:sudo指令

来源:互联网 发布:李娜 歌手 知乎 编辑:程序博客网 时间:2024/05/20 21:21

sudo 指令使用說明

Sudo 是Unix/Linux平臺上的一個非常有用的工具,它允許系統管理員分配給普通用戶一些合理的權限,讓他們執行一些只有系統管理員或其他特許用戶才能完成的任務,例如:執行一些像 mount, halt, su 之類的命令,或者編輯一些系統設定檔,像 /etc/mtab, /etc/samba/smb.conf 等。這樣一來,就不僅減少了 root 使用者的登錄次數和管理時間,也提高了系統安全性。

一. sudo的特點

sudo扮演的角色註定了它要在安全方面格外謹慎,否則就會導致非法用戶攫取root許可權。同時,它還要兼顧易用性,讓系統管理員能夠更有效,更方便地使用它。sudo設計者的宗旨是:給用戶盡可能少的許可權但仍允許完成他們的工作。所以,sudo有以下特點:
1. sudo能夠限制指定用戶在指定主機上運行某些命令。
2. sudo可以提供日誌,忠實地記錄每個用戶使用sudo做了些什麼,並且能將日誌傳到中心主機或者日誌伺服器。
3. sudo為系統管理員提供配置文件,允許系統管理員集中地管理用戶的使用許可權和使用的主機。它默認的存放位置是/etc/sudoers。
4.sudo使用時間戳文件來完成類似“檢票”的系統。當用戶執行sudo並且輸入密碼後,用戶獲得了一張默認存活期為5分鐘的“入場券”(默認值可以在編譯的時候改變)。超時以後,用戶必須重新輸入密碼。

二. sudo命令

sudo程式本身就是一個設置了SUID位的二進位文件。我們可以檢查一下它的許可權:$ls -l /usr/bin/sudo
---s--x--x 2 root root 106832 02-12 17:41 /usr/bin/sudo

它的所有者是root,所以每個用戶都可以像root那樣執行該程式。設置了SUID的程式在運行時可以給使用者以所有者的EUID。這也是為什麼設置 了SUID的程式必須小心編寫。但是設置一個命令文件的SUID 和用sudo來運行它是不同的概念,它們起著不同的作用。

sudo的配置都記錄在/etc/sudoers文件中,我們下面將會詳細說明。配置文件指明哪些用戶可以執行哪些命令。要使用sudo,用戶必須提供 一個指定用戶名和密碼。注意:sudo需要的不是目標用戶的密碼,而是執行sudo的用戶的密碼。如果不在sudoers中的用戶通過sudo執行命令, sudo會向管理員報告這一事件。用戶可以通過sudo -v來查看自己是否是在sudoers 之中。如果是,它還可以更新你的“入場券”上的時間;如果不是,它會提示你,但不會通知管理員。

sudo 指令格式如下
sudo -K | -L | -V | -h | -k | -l | -vsudo [-HPSb] [-a auth_type] [-cclass|-] [-p prompt] [-u username|#uid] {-e file [...] | -i | -s | command}

下面我們再來看一下 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。