Ubuntu 中的 root 使用者:你應該知道的重要事情
當你剛開始使用 Linux 時,你將發現與 Windows 的很多不同。其中一個“不同的東西”是 root 使用者的概念。
在這個初學者系列中,我將解釋幾個關於 Ubuntu 的 root 使用者的重要的東西。
請記住,儘管我正在從 Ubuntu 使用者的角度編寫這篇文章,它應該對大多數的 Linux 發行版也是有效的。
你將在這篇文章中學到下面的內容:
- 為什麼在 Ubuntu 中禁用 root 使用者
- 像 root 使用者一樣使用命
- 切換為 root 使用者
- 解鎖 root 使用者
什麼是 root 使用者?為什麼它在 Ubuntu 中被鎖定?
在 Linux 中,有一個稱為 root 的超級使用者。這是超級管理員賬號,它可以做任何事以及使用系統的一切東西。它可以在你的 Linux 系統上訪問任何檔案和執行任何命令。
能力越大,責任越大。root 使用者給予你完全控制系統的能力,因此,它應該被謹慎地使用。root 使用者可以訪問系統檔案,執行更改系統配置的命令。因此,一個錯誤的命令可能會破壞系統。
這就是為什麼 Ubuntu 和其它基於 Ubuntu 的發行版預設鎖定 root 使用者,以從意外的災難中挽救你的原因。
對於你的日常任務,像移動你家目錄中的檔案,從網際網路下載檔案,建立文件等等,你不需要擁有 root 許可權。
打個比方來更好地理解它。假設你想要切一個水果,你可以使用一把廚房用刀。假設你想要砍一顆樹,你就得使用一把鋸子。現在,你可以使用鋸子來切水果,但是那不明智,不是嗎?_
這意味著,你不能是 Ubuntu 中 root 使用者或者不能使用 root 許可權來使用系統嗎?不,你仍然可以在 sudo
的幫助下來擁有 root 許可權來訪問(在下一節中解釋)。
要點: 使用於常規任務,root 使用者許可權太過強大。這就是為什麼不建議一直使用 root 使用者。你仍然可以使用 root 使用者來執行特殊的命令。
如何在 Ubuntu 中像 root 使用者一樣執行命令?
對於一些系統的特殊任務來說,你將需要 root 許可權。例如。如果你想通過命令列更新 Ubuntu,你不能作為一個常規使用者執行該命令。它將給出許可權被拒絕的錯誤。
apt update
Reading package lists... Done
E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
E: Unable to lock directory /var/lib/apt/lists/
W: Problem unlinking the file /var/cache/apt/pkgcache.bin - RemoveCaches (13: Permission denied)
W: Problem unlinking the file /var/cache/apt/srcpkgcache.bin - RemoveCaches (13: Permission denied)
那麼,你如何像 root 使用者一樣執行命令?簡單的答案是,在命令前新增 sudo
,來像 root 使用者一樣執行。
sudo apt update
Ubuntu 和很多其它的 Linux 發行版使用一個被稱為 sudo
的特殊程式機制。sudo
是一個以 root 使用者(或其它使用者)來控制執行命令訪問的程式。
實際上,sudo
是一個非常多用途的工具。它可以配置為允許一個使用者像 root 使用者一樣來執行所有的命令,或者僅僅一些命令。你也可以配置為無需密碼即可使用 sudo 執行命令。這個主題內容比較豐富,也許我將在另一篇文章中詳細討論它。
就目前而言,你應該知道當你安裝 Ubuntu 時,你必須建立一個使用者賬號。這個使用者賬號在你係統上以管理員身份來工作,並且按照 Ubuntu 中的預設 sudo 策略,它可以在你的系統上使用 root 使用者許可權來執行任何命令。
sudo
的問題是,執行 sudo 不需要 root 使用者密碼,而是需要使用者自己的密碼。
並且這就是為什麼當你使用 sudo
執行一個命令,會要求輸入正在執行 sudo
命令的使用者的密碼的原因:
[email protected]:~$ sudo apt update
[sudo] password for abhishek:
正如你在上面示例中所見 abhishek
在嘗試使用 sudo
來執行 apt update
命令,系統要求輸入 abhishek
的密碼。
如果你對 Linux 完全不熟悉,當你在終端中開始輸入密碼時,你可能會驚訝,在螢幕上什麼都沒有發生。這是十分正常的,因為作為預設的安全功能,在螢幕上什麼都不會顯示。甚至星號(*
)都沒有。輸入你的密碼並按Enter鍵。
要點:為在 Ubuntu 中像 root 使用者一樣執行命令,在命令前新增
sudo
。 當被要求輸入密碼時,輸入你的賬戶的密碼。當你在螢幕上輸入密碼時,什麼都看不到。請繼續輸入密碼,並按Enter鍵。
如何在 Ubuntu 中成為 root 使用者?
你可以使用 sudo
來像 root 使用者一樣執行命令。但是,在某些情況下,你必須以 root 使用者身份來執行一些命令,而你總是忘了在命令前新增 sudo
,那麼你可以臨時切換為 root 使用者。
sudo
命令允許你來模擬一個 root 使用者登入的 shell ,使用這個命令:
sudo -i
[email protected]:~$ sudo -i
[sudo] password for abhishek:
[email protected]:~# whoami
root
你將注意到,當你切換為 root 使用者時,shell 命令提示符從 $
(美元符號)更改為 #
(英鎊符號)。我開個(拙劣的)玩笑,英鎊比美元強大。
雖然我已經向你顯示如何成為 root 使用者,但是我必須警告你,你應該避免作為 root 使用者使用系統。畢竟它有阻攔你使用 root 使用者的原因。
另外一種臨時切換為 root 使用者的方法是使用 su
命令:
sudo su
如果你嘗試使用不帶有的 sudo
的 su
命令,你將遇到 “su authentication failure” 錯誤。
你可以使用 exit
命令來恢復為正常使用者。
exit
如何在 Ubuntu 中啟用 root 使用者?
現在你知道,root 使用者在基於 Ubuntu 發行版中是預設鎖定的。
Linux 給予你在系統上想做什麼就做什麼的自由。解鎖 root 使用者就是這些自由之一。
如果出於某些原因,你決定啟用 root 使用者,你可以通過為其設定一個密碼來做到:
sudo passwd root
再強調一次,不建議使用 root 使用者,並且我也不鼓勵你在桌面上這樣做。如果你忘記了密碼,你將不能再次在 Ubuntu 中更改 root 使用者密碼。(LCTT 譯註:可以通過單使用者模式修改。)
你可以通過移除密碼來再次鎖定 root 使用者:
sudo passwd -dl root
最後…
我希望你現在對 root 概念理解得更好一點。如果你仍然有些關於它的困惑和問題,請在評論中讓我知道。我將嘗試回答你的問題,並且也可能更新這篇文章。
via: https://itsfoss.com/root-user-ubuntu/
作者:Abhishek Prakash 選題:lujun9972 譯者:robsean 校對:wxy
訂閱“Linux 中國”官方小程式來檢視
相關文章
- 關於 jwt 你應該知道的事情JWT
- 關於字元編碼你應該知道的事情字元
- 【譯】關於JavaScript 陣列你應該知道的事情JavaScript陣列
- 【譯】關於 JavaScript 的原型你應該知道的所有事情JavaScript原型
- 你應該要知道的JS中的thisJS
- 你應該知道的FlutterFlutter
- 你應該知道的RocketMQMQ
- 你應該知道的JS —— 物件JS物件
- 你應該知道的前端——快取前端快取
- 你應該知道的程式集版本
- 關於 jwt ,你應該知道的JWT
- 你應該知道的前端--儲存前端
- 你應該知道的前端--渲染原理前端
- 你應該知道的Linux歷史Linux
- 你應該知道的Redis事務Redis
- CSS Tricks - 你應該知道的 CSS 技巧CSS
- 你應該知道的Node.js流Node.js
- 你應該知道的16個linux命令Linux
- 你應該要知道的Vue.jsVue.js
- Android —— 自定義View中,你應該知道的知識點AndroidView
- 測試們應該知道的真相,第四點最重要
- Ubuntu Linux中如何啟用root使用者UbuntuLinux
- 你應該要知道的重繪與重排
- 你應該知道的快取進化史快取
- 你應該知道的緩動知識點
- 關於WSL2你應該知道的
- Ubuntu使用者都應該瞭解的快捷鍵Ubuntu
- Python——你應該知道這些Python
- 你知道併發使用者數應該怎麼算嗎?
- Linux 中關於 known_hosts 檔案,你所應該知道的Linux
- 服務端效能測試你應該知道的服務端
- 你應該知道的ip地址相關知識
- 「開位」你所應該知道的HTTP——HTTPS篇HTTP
- 關於前端模組化你應該知道的前端
- 你應該知道的 5 種 TypeScript設計模式TypeScript設計模式
- Laravel 你應該知道的幾個最佳實踐Laravel
- 前端應該知道的GraphQL前端
- 你應該知道Go語言的幾個優勢Go