Ubuntu中的root用戶:你應該知道的重要事情
當你剛開始使用 Linux 時,你將發(fā)現(xiàn)與 Windows 的很多不同。其中一個“不同的東西”是 root 用戶的概念。
在這個初學者系列中,我將解釋幾個關于 Ubuntu 的 root 用戶的重要的東西。
請記住,盡管我正在從 Ubuntu 用戶的角度編寫這篇文章,它應該對大多數(shù)的 Linux 發(fā)行版也是有效的。
你將在這篇文章中學到下面的內(nèi)容:
- 為什么在 Ubuntu 中禁用 root 用戶
- 像 root 用戶一樣使用命
- 切換為 root 用戶
- 解鎖 root 用戶
什么是 root 用戶?為什么它在 Ubuntu 中被鎖定?
在 Linux 中,有一個稱為 root 的超級用戶。這是超級管理員賬號,它可以做任何事以及使用系統(tǒng)的一切東西。它可以在你的 Linux 系統(tǒng)上訪問任何文件和運行任何命令。
能力越大,責任越大。root 用戶給予你完全控制系統(tǒng)的能力,因此,它應該被謹慎地使用。root 用戶可以訪問系統(tǒng)文件,運行更改系統(tǒng)配置的命令。因此,一個錯誤的命令可能會破壞系統(tǒng)。
這就是為什么 Ubuntu 和其它基于 Ubuntu 的發(fā)行版默認鎖定 root 用戶,以從意外的災難中挽救你的原因。
對于你的日常任務,像移動你家目錄中的文件,從互聯(lián)網(wǎng)下載文件,創(chuàng)建文檔等等,你不需要擁有 root 權限。
打個比方來更好地理解它。假設你想要切一個水果,你可以使用一把廚房用刀。假設你想要砍一顆樹,你就得使用一把鋸子。現(xiàn)在,你可以使用鋸子來切水果,但是那不明智,不是嗎?_
這意味著,你不能是 Ubuntu 中 root 用戶或者不能使用 root 權限來使用系統(tǒng)嗎?不,你仍然可以在 sudo
的幫助下來擁有 root 權限來訪問(在下一節(jié)中解釋)。
要點: 使用于常規(guī)任務,root 用戶權限太過強大。這就是為什么不建議一直使用 root 用戶。你仍然可以使用 root 用戶來運行特殊的命令。
如何在 Ubuntu 中像 root 用戶一樣運行命令?
Image Credit: xkcd
對于一些系統(tǒng)的特殊任務來說,你將需要 root 權限。例如。如果你想通過命令行更新 Ubuntu,你不能作為一個常規(guī)用戶運行該命令。它將給出權限被拒絕的錯誤。
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 發(fā)行版使用一個被稱為 sudo
的特殊程序機制。sudo
是一個以 root 用戶(或其它用戶)來控制運行命令訪問的程序。
實際上,sudo
是一個非常多用途的工具。它可以配置為允許一個用戶像 root 用戶一樣來運行所有的命令,或者僅僅一些命令。你也可以配置為無需密碼即可使用 sudo 運行命令。這個主題內(nèi)容比較豐富,也許我將在另一篇文章中詳細討論它。
就目前而言,你應該知道當你安裝 Ubuntu 時,你必須創(chuàng)建一個用戶賬號。這個用戶賬號在你系統(tǒng)上以管理員身份來工作,并且按照 Ubuntu 中的默認 sudo 策略,它可以在你的系統(tǒng)上使用 root 用戶權限來運行任何命令。
sudo
的問題是,運行 sudo 不需要 root 用戶密碼,而是需要用戶自己的密碼。
并且這就是為什么當你使用 sudo
運行一個命令,會要求輸入正在運行 sudo
命令的用戶的密碼的原因:
[email protected]:~$ sudo apt update
[sudo] password for abhishek:
正如你在上面示例中所見 abhishek
在嘗試使用 sudo
來運行 apt update
命令,系統(tǒng)要求輸入 abhishek
的密碼。
如果你對 Linux 完全不熟悉,當你在終端中開始輸入密碼時,你可能會驚訝,在屏幕上什么都沒有發(fā)生。這是十分正常的,因為作為默認的安全功能,在屏幕上什么都不會顯示。甚至星號(*
)都沒有。輸入你的密碼并按回車鍵。
要點:為在 Ubuntu 中像 root 用戶一樣運行命令,在命令前添加
sudo
。 當被要求輸入密碼時,輸入你的賬戶的密碼。當你在屏幕上輸入密碼時,什么都看不到。請繼續(xù)輸入密碼,并按回車鍵。
如何在 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 命令提示符從 $
(美元符號)更改為 #
(英鎊符號)。我開個(拙劣的)玩笑,英鎊比美元強大。
雖然我已經(jīng)向你顯示如何成為 root 用戶,但是我必須警告你,你應該避免作為 root 用戶使用系統(tǒng)。畢竟它有阻攔你使用 root 用戶的原因。
另外一種臨時切換為 root 用戶的方法是使用 su
命令:
sudo su
如果你嘗試使用不帶有的 sudo
的 su
命令,你將遇到 “su authentication failure” 錯誤。
你可以使用 exit
命令來恢復為正常用戶。
exit
如何在 Ubuntu 中啟用 root 用戶?
現(xiàn)在你知道,root 用戶在基于 Ubuntu 發(fā)行版中是默認鎖定的。
Linux 給予你在系統(tǒng)上想做什么就做什么的自由。解鎖 root 用戶就是這些自由之一。
如果出于某些原因,你決定啟用 root 用戶,你可以通過為其設置一個密碼來做到:
sudo passwd root
再強調一次,不建議使用 root 用戶,并且我也不鼓勵你在桌面上這樣做。如果你忘記了密碼,你將不能再次在 Ubuntu 中更改 root 用戶密碼。(LCTT 譯注:可以通過單用戶模式修改。)
你可以通過移除密碼來再次鎖定 root 用戶:
sudo passwd -dl root
最后…
我希望你現(xiàn)在對 root 概念理解得更好一點。如果你仍然有些關于它的困惑和問題,請在評論中讓我知道。我將嘗試回答你的問題,并且也可能更新這篇文章。