Sudo

出自Ubuntu 正體中文 Wiki

跳轉到: 導航, 搜尋

目錄

前言

在 Linux 或是其它 Unix-like 的作業系統中,使用者權限的劃分其實很簡單,它只規範了「誰有權限讀取、寫入、執行這個檔案」,因為各種系統設定都是以檔案的方式存在,所以要更改某個設定,就必須有該設定檔寫入的權限。

一般而言,使用者只能夠對自己home目錄(如果你的ID是 foo,那麼 home 目錄就是 /home/foo)底下的檔案進行寫入的動作(也就是更改檔案內容),只有一個特殊的使用者 -- root,它擁有整個系統所有檔案的權限,可是如果平常工作都使用 root 這個帳號,這對整個系統來說有可能會造成威脅,所以才會有 sudo 這樣的一個程式,用來驗證你的身分,然後能夠執行 root 才能做的動作。

sudo

誰可以使用 sudo

在 /etc/sudoers 這個檔案規範了誰可以使用 sudo,如果沒有規範,人人都可以用 sudo 的話,那這樣就沒什麼保護的意義了。

/etc/sudoers 這個檔案設定的方式,可以看下面這一行:

root    ALL=(ALL) ALL

這說明了 root 這個帳號可以使用所有的權限及更改所有的檔案,如果你要新增一個使用者也能使用 sudo 的話,可以仿照這一行的寫法,詳細的說明可以參考 man sudo

而這一行:

%admin  ALL=(ALL) ALL

表示所有在admin群組的使用者都可以使用 sudo,因為 Ubuntu 把預設的使用者帳號設在 admin 群組下,所以我們的預設帳號才能使用 sudo。

sudo 的用法

sudo 的用法很簡單,只要在你想執行的指令前面加上 sudo 即可。它會提示要你輸入密碼,你只要輸入你目前使用帳號的密碼就可以了。

比方說,你要重新啟動一個系統的程式,它們大多被放在 /etc/init.d/ 下面,也需要 root 的權限才能做,所以我們可以透過 sudo 來動作:

sudo /etc/init.d/networking restart   # 如果打算重新執行網路的設定

如果要更改 /etc/sudoers 這個檔,也是需要 root 權限才能對它寫入:

sudo gedit /etc/sudoers

在圖形介面下,執行某些系統設定程式也會要求你輸入密碼,它的道理跟 sudo 是一樣的。