sudo
sudo(superuser do)讓目前使用者「這一條指令」用 root 權限執行。系統設定、套件安裝、看受保護的 log,幾乎都靠它。
為什麼不直接用 root 登入
長時間掛在 root 底下,打錯一個 rm 就可能毀掉系統。sudo 的好處是:
- 預設會問你自己的密碼,不是 root 密碼
- 指令會被記進日誌,出事可追溯
- 做完立刻回到普通權限
sudo -i 會進入 root 的 login shell,用完記得 exit。
常見狀況
不是 sudoers
代表這個帳號沒被授權。在 Ubuntu 要把使用者加進 sudo 群組,而且這一步必須由已經有權限的人做。
剛才打過密碼,這次沒問
預設有一段寬限期,避免連續裝套件時反覆輸入。這是正常的。
只想用 root 跑一個 shell 函式或整段管線
因為 | 左邊的 sudo 不會自動讓右邊也變 root。
看自己有哪些權限
會列出你可以(以及不可以)用 sudo 執行的指令。
sudo 不是關閉權限檢查
就算是 root,路徑寫錯、服務名稱打錯,後果一樣嚴重。先用一般身分確認指令,再在前面加 sudo。
總結
系統層操作在指令前加 sudo。不要習慣性 sudo -i 待整天。權限搞懂之後,就可以學 Linux 最有威力的部分:管線與搜尋。