跳轉到

建立 2026-09-14 更新 2026-09-14

sudo

sudo(superuser do)讓目前使用者「這一條指令」用 root 權限執行。系統設定、套件安裝、看受保護的 log,幾乎都靠它。

為什麼不直接用 root 登入

長時間掛在 root 底下,打錯一個 rm 就可能毀掉系統。sudo 的好處是:

  • 預設會問你自己的密碼,不是 root 密碼
  • 指令會被記進日誌,出事可追溯
  • 做完立刻回到普通權限
sudo apt update
sudo nano /etc/hosts
sudo -i

sudo -i 會進入 root 的 login shell,用完記得 exit

常見狀況

不是 sudoers

user is not in the sudoers file

代表這個帳號沒被授權。在 Ubuntu 要把使用者加進 sudo 群組,而且這一步必須由已經有權限的人做。

剛才打過密碼,這次沒問

預設有一段寬限期,避免連續裝套件時反覆輸入。這是正常的。

只想用 root 跑一個 shell 函式或整段管線

sudo bash -c 'cat /etc/shadow | wc -l'

因為 | 左邊的 sudo 不會自動讓右邊也變 root。

看自己有哪些權限

sudo -l

會列出你可以(以及不可以)用 sudo 執行的指令。

sudo 不是關閉權限檢查

就算是 root,路徑寫錯、服務名稱打錯,後果一樣嚴重。先用一般身分確認指令,再在前面加 sudo

總結

系統層操作在指令前加 sudo。不要習慣性 sudo -i 待整天。權限搞懂之後,就可以學 Linux 最有威力的部分:管線與搜尋