- Root 是 Linux 超級用戶,擁有對系統的完全控制權,凌駕於任何常規權限限制之上。
- 通常的做法不是以 root 使用者身分登錄,而是使用 sudo 或 su 指令以可控且臨時的方式取得提升的權限。
- 不當使用 root 權限可能會清除系統資料、安裝惡意軟體或破壞安全,因此最好盡量減少使用,並仔細審查命令。
- 正確配置 sudoers、鎖定 root 帳戶並遵循最佳實踐,可以實現安全且可追溯的 Linux 管理。
如果你之前使用 Windows 系統(請參閱Windows 使用者帳戶),現在轉而使用 Linux,那麼 root 使用者這個名字聽起來可能很陌生,但它實際上是區分穩定安全系統和徹底崩潰系統的關鍵要素。 root 使用者是系統的“絕對所有者”,幾乎可以安裝、刪除、破壞和修復任何程序,而無需徵得許可。
了解 Linux 系統中 root 權限的用途、它與 `sudo` 和 `su` 命令的關係以及相關風險,對於管理系統至關重要,無論該系統是家用筆記型電腦還是生產伺服器。本文將以簡單易懂的語言詳細解釋 root 權限是什麼,它在不同發行版(尤其是 Ubuntu)中的使用方式,它的潛在危險以及避免系統崩潰的最佳實踐。
Linux 中的 root 使用者是什麼?它有什麼特別之處?
在任何 GNU/Linux 系統中,都有一個擁有完全權限的用戶,稱為 root,也稱為超級用戶。該用戶的 UID 為 0,不受通常的文件和進程權限限制:它可以讀取、修改或刪除任何文件,安裝或卸載軟體,更改系統設置,管理其他用戶,以及存取關鍵服務。
如果將其與 Windows 系統進行比較,root 使用者相當於 Administrator,但權限更大。因為在 Linux 系統中,權限模型更加精細,使用者和服務之間的分離也更加嚴格。普通使用者在類似這樣的路徑下可以執行的操作是有限的。 /etc, /usr, /var o /bootRoot權限允許你無需請求許可即可訪問任何地方。
除了一般使用者和 root 使用者之外,Linux 還定義了權限非常有限的「系統使用者」或服務帳戶(守護程式),用於執行 Web 伺服器、資料庫或其他守護程序。這確保即使某個服務遭到入侵,攻擊者也不會自動獲得系統的完全存取權…除非他們設法將權限提升到 root。
預設情況下,標準使用者無法安裝程式、修改全域設定檔或在敏感區域建立目錄。要執行這些任務中的任何一項,您都需要使用諸如以下工具來提升權限: sudo o su這些正是以受控方式「呼叫」超級用戶的常用機制。
在許多現代發行版中,尤其是 Ubuntu 及其衍生版本,直接 root 登入已停用。相反,在安裝過程中會建立一個屬於管理員群組的普通使用者(例如, sudo o admin)並且該指令被使用 sudo 要執行管理操作,需要請求您自己的密碼,而不是 root 密碼。
普通用戶、root 用戶和 sudo 群組之間的區別
Linux 實作了一個基於使用者和群組的權限系統。總的來說,在日常使用中,當我們談到 root 權限時,可以區分出三種主要的帳戶類型:
普通用戶這些是系統使用者的帳戶。他們擁有… 首頁 它們可以在自己的目錄中安裝程式、運行桌面應用程式、保存文件等等。然而, 他們無法執行系統管理任務 如何安裝全域軟體包,如何修改配置 /etc 或管理其他用戶,除非他們使用 sudo o su.
root 使用者是擁有絕對控制權的超級使用者。除了核心本身或高級安全機制施加的限制外,它不受任何其他權限限制。它可以“隨心所欲”,從刪除根目錄到更改任何檔案的權限,無所不能。正因如此,不建議將其用於日常任務。
管理員用戶(sudoers):是屬於特定群體(通常是)的一般用戶 sudo o admin)和 他們擁有以 root 使用者身分執行命令的權限。 sudo例如,要將使用者新增至群組 sudo 你可以使用類似這樣的方法:sudo usermod -aG sudo nombreusuario
使用者一旦成為 sudo 使用者群組成員,就可以透過添加前綴來執行特權命令。 sudo系統會要求您輸入密碼(不是root密碼),如果密碼正確,它將以超級使用者權限執行命令。這在安全性和便捷性之間取得了良好的平衡。
根在實踐中是什麼?它有什麼用途?
理論上講,root 使用者是系統用來進行任何深度變更的身份。您可以繼續使用普通使用者帳戶,僅在必要時才存取 root 使用者。讓我們來看看它的一些主要用途。
安裝或解除安裝系統軟體軟體套件管理器(例如) apt, dnf o pacman他們需要寫入受保護的路徑,所以 它們始終以 root 權限運行。一個典型的例子是:sudo apt install vlc
編輯系統設定檔大多數系統服務和程式都是透過目錄中的文字檔案進行配置的,例如 /etc要使用編輯器開啟並儲存這些文件,您需要擁有更高的權限。例如:sudo nano /etc/hosts
更改root用戶密碼或其他用戶密碼諸如更改超級使用者本身密碼或其他帳戶密碼之類的操作,都需要存取系統的密碼資料庫。一個典型的命令是:sudo passwd root
執行可能危險的命令。 類似的工具 rm (刪除), chmod (更改權限), chown (變更所有者)或 mkfs (格式)如果使用不當,會造成很大的損害。 此系統需要 root 權限才能執行影響關鍵檔案或裝置的操作。 防止普通用戶意外破壞系統。
管理機器的啟動、關機和重新啟動。. 命令如下 reboot, poweroff 或進階處理 systemctl 關於系統服務 他們還需要超級使用者權限。。 有關更多信息 systemd 及其服務管理 您可以查閱相關文件。否則,任何用戶都可以隨時重新啟動生產伺服器。
實際上,如果 Linux 系統中出現「權限被拒絕」錯誤,則很可能需要以 root 權限執行程式。 運用 sudo 或暫時切換到超級使用者模式 su.
sudo 和 su 指令:何時使用哪一個
一旦你了解 root 是系統的“所有者”,接下來就需要了解如何從你的普通使用者帳戶獲得這些權限。實現這一目標的兩種經典工具是: sudo y su雖然很多人會將它們混淆,但它們的功能並不完全相同。
sudo (“superuser do”)用於以其他使用者(通常是 root 使用者)的權限執行單一命令。您無需切換會話,也無需「以 root 使用者身分執行所有操作」;只有該特定命令會以提升的權限執行。例如:sudo apt install gparted
每次你使用 sudo 系統會要求您輸入密碼(如果您最近沒有輸入過密碼)。如果幾分鐘內沒有進行任何操作,sudo「票據」就會過期,您需要重新進行身份驗證,這增加了一層重要的安全保障。
su (「切換使用者」)在同一會話中更改您的使用者身份如果使用時不帶任何參數,您將獲得 root 權限(系統會要求輸入 root 密碼),並且所有後續命令都將以該權限執行,直到您退出為止。 exit。 例如:suContraseña:whoami # devuelve 'root'
你也可以使用 su nombreusuario 從一個用戶切換到另一個用戶前提是您知道目標帳號的密碼。這將完全更改環境,使其與新用戶的環境保持一致(變數、 首頁等等)建議使用 su - o su - nombreusuario.
一般來說,使用被認為是更安全、更可取。 sudo 針對特定指令 並訴諸 su 只有當您確實需要長時間的 root 會話時(例如,在恢復任務或複雜維護中)。
Ubuntu及其衍生發行版中root的特殊性
Ubuntu 和許多基於 Ubuntu 的發行版遵循相當明確的安全理念:root 使用者存在,但無法直接登入。這表示在標準安裝後,無論在終端機還是圖形環境中,您都無法使用密碼以 root 使用者身分登錄,因為該使用者沒有被指派密碼。
相反,Ubuntu 選擇大量使用 sudo安裝過程中,會建立一個屬於該群組的管理員使用者。 sudo之後,所有行政任務都透過以下方式完成:sudo comando
如果你需要在 Ubuntu 中取得「完整」的 root shell,你有幾個安全的選擇。:sudo -i # 開啟 root 登入會話sudo su - # 切換到 root 使用者並登入環境
這兩種方法都會讓您以 root 使用者身分操作該終端,直到您使用 `exit` 命令退出。 exit你會發現提示通常會發生變化,並以…結尾。 # 而不是 $這是你擁有超級使用者權限的典型標誌。務必牢記這一點,避免在不應執行危險命令的地方執行此類命令。
雖然不建議這樣做,但您可以透過為 root 使用者指派密碼來啟用 Ubuntu 中的 root 使用者。 使用:sudo passwd root
輸入並確認新密碼後,root 權限將被“解鎖”,之後即可使用例如以下功能: su 沒有事先使用 sudo,甚至不允許透過 TTY 或 SSH 直接登入(在暴露的伺服器上強烈不建議這樣做)。
隨意使用根管的真正風險
以 root 使用者身分操作卻不清楚自己在做什麼,就像在高速公路上倒車:也許能行,但即使一秒鐘的疏忽都會導致災難性的後果。 Linux 預設設計得相當安全,但一旦提升權限,許多保護措施就會失效。
第一個主要風險是意外刪除或損壞檔案系統。例如:rm -rf /rm -rf /*
或更微妙的結構,例如:rm -rf "$directorio"/*
如果以 root 使用者身分執行,且路徑與您想像的不同,它們可以在幾秒鐘內摧毀整個系統。有時候,一個空變數、一個放錯位置的斜線或一個放錯位置的製表鍵,就可能將一個看似無害的命令變成一場災難。
第二個主要危險是使用完全權限安裝惡意軟體。未經檢查代碼就以 root 使用者身分從網路下載並執行腳本,就好比把家門鑰匙交給陌生人。惡意腳本可以安裝rootkit、鍵盤記錄器或後門程序,修改內核,監視你的所有操作,並且能夠長時間隱藏。
透過篡改關鍵檔案權限,也相對容易破壞系統安全。例如,如果您執行類似這樣的命令:chmod 000 /etc -R
或者您更改了權限 /boot 或取消 /etc/passwd 在不了解自己在做什麼的情況下, 你可能會使機器無法啟動或使用戶身份驗證無法進行。很多情況下,唯一的解決方案是使用 LiveCD 甚至重新安裝系統。
從安全角度來看,始終以 root 使用者身分執行會使該帳戶成為單點故障。如果攻擊者獲得 root 權限(透過暴力破解、網絡釣魚、惡意軟體等方式),他們就擁有完全控制權:他們可以加密磁碟、竊取資料、加入殭屍網絡,或利用您的伺服器攻擊第三方。為了降低這些風險,您應該考慮使用 SELinux和其他保護機制來加強安全防護。
此外,根莖的大量使用使得溯源變得困難。當使用以下命令執行命令時 sudo系統會記錄是誰在何時發起的,而如果所有操作都以 root 使用者身分執行,則無法清楚地了解每個操作背後的使用者是誰,這會使稽核和問題診斷變得複雜。
輸入 sudo 密碼時顯示星號
在許多發行版(例如 Ubuntu)中,預設輸入 sudo 密碼時不會顯示任何點號或星號。這原本是為了防止他人僅透過查看螢幕就推斷出密碼長度而採取的安全措施,但實際上卻非常不方便:輸入後似乎沒有任何反應。
一段時間以來,sudo 允許激活一種名為“ pwfeedback它會在你輸入的每個字元後面顯示一個星號。它不會顯示你的密碼,但可以確認鍵盤有回應,並幫助你偵測拼字錯誤。
要啟用它,您需要使用安全工具編輯 sudo 配置。 visudo這樣會在儲存前驗證語法,防止您因低階錯誤而遺失 sudo 權限。步驟如下:
1. 開啟 sudo 設定:sudo visudo
2. 新增以下行:Defaults pwfeedback
3.儲存並退出編輯器
從那一刻起,每次你輸入 sudo 密碼時,都會出現星號。如果想恢復到原來的行為,只需使用 `return` 刪除該行即可。 visudo.
禁用或阻止 root 帳戶
在多人共用同一台電腦的環境中,root 密碼很容易被濫用。如果太多人知道這個密碼,遲早會有人造成(或遭受)重大問題。一個非常合理的解決方案是停用 root 帳戶,只使用 sudo 指令。
鎖定 root 帳號後,即可阻止使用者直接以該使用者登入。 而且你還能阻止它被使用。 su 使用您的密碼取得 root 權限。但是, 已授權使用者仍可使用 sudo 執行特權指令。
在許多發行版中,只需執行以下命令即可鎖定 root 帳戶:sudo passwd -l root
此指令會「凍結」root密碼,使其無法使用。如果以後需要重新激活,您需要設定一個類似這樣的新密碼:sudo passwd root
如果您的root密碼遺失,請找回或更改它。
如果您忘記了 root 密碼或帳戶被鎖定需要恢復,也別擔心。 Linux 提供了多種重設密碼的方法,通常是透過以特殊模式啟動系統或使用 LiveCD。
一個非常常見的方法是透過 GRUB 引導選單,使用恢復模式。許多發行版都有一個“進階選項”選項,您可以在其中選擇“恢復模式”。選擇此選項會載入一個功能受限的環境,其中包含一些救援選項。
如果您選擇在復原模式下取得 root 控制台,標準流程通常是:
1. 以寫入權限掛載檔案系統:mount -o rw,remount /
2. 設定root用戶的新密碼:passwd root
3. 同步資料並重新啟動以應用變更:syncreboot
另一種主要方法是從 Linux 發行版的 LiveCD 或 LiveUSB 啟動(例如,Ubuntu 的「試用而不安裝」模式),然後從外部對已安裝的系統進行操作。
使用 LiveCD 的典型步驟如下:
1. 打開終端機並取得臨時 root shell:sudo su
2. 使用類似以下命令找到包含 Linux 系統的分割區:fdisk -l
3. 將該分割區掛載到工作目錄中(例如使用 /dev/sda1):mkdir /mnt/recovermount /dev/sda1 /mnt/recover
4. 將系統根目錄變更為掛載的目錄 chroot:chroot /mnt/recover
5. 從那裡開始,使用 passwd root 設定新密碼後,登出並重新啟動,即可正常登入。
/etc/sudoers 檔案以及如何微調 root 權限
根管理中最強大(也最微妙)的方面之一是文件 /etc/sudoers其中定義了誰可以使用 sudo在這裡,您可以詳細自訂提升權限的存取方式,指定在何處以及執行哪些命令。
非常重要:切勿編輯 /etc/sudoers 直接與任何編輯器聯繫始終使用:sudo visudo
因為這個工具 儲存前請檢查語法。此文件中的錯誤可能會導致您無法使用 sudo,並且 visudo 你將這種風險降到最低。
典型內容 /etc/sudoers 一個乾淨的 Ubuntu 系統包含類似如下的行::root ALL=(ALL:ALL) ALL%sudo ALL=(ALL:ALL) ALL
第一條規定表明,root 使用者可以以任何使用者和群組的身分在任何主機上執行任何命令。第二個指令的作用相同,但適用於群組中的所有使用者。 sudo這樣一來,該群體中的任何人都能透過這種方式獲得絕對權力。 sudo.
對於更進階的配置,sudoers 允許您為使用者、命令和執行群組定義別名,例如:
User_Alias ADMINES = pepe, perico, andres
Cmnd_Alias POWER = /sbin/shutdown, /sbin/halt, /sbin/reboot, /sbin/restart
Runas_Alias WEB = www-data, apache
例如,透過這些定義,您可以授予管理員無需密碼即可關閉或重新啟動系統的權限。 例如:ADMINES ALL = NOPASSWD: POWER
標籤如下 NOPASSWD 它們允許您使用 sudo 執行某些命令,而無需輸入密碼。這在自動化腳本、與其他系統的整合或您是唯一使用者的個人電腦中非常有用。
出於好奇,還有一個叫做…的選項 insults 如果你把它加到這些行中的話。 Defaults每次你輸入錯誤的密碼,sudo 都會用英文「侮辱」你。它並不能提高安全性,但至少能讓你在工作中露出笑容。
使用 root 權限從終端機管理檔案和權限
實際上,root 權限的大部分用途都集中在透過終端機管理檔案和權限。擁有超級使用者權限後,您可以瀏覽整個檔案系統並修改任何所需內容,但請務必始終保持高度謹慎。
一些以 root 使用者身分執行的基本指令會變得格外敏感,例如:
ls:列出檔案和目錄。以 root 使用者身份,您甚至可以看到其他使用者無法列出的檔案。
cp y mv若要複製和移動檔案或目錄,請使用 `sudo`。例如,您可以使用 `sudo` 將字體從…移動。 Descargas 到 /usr/share/fonts/ 以便整個系統都能使用它。
rm:刪除檔案和資料夾。與 -r y -f 如果在未正確檢查路徑的情況下以 root 使用者身分使用它,則極其危險。
chmod y chown這些設定會變更權限和所有權。它們對於授予特定使用者文件存取權至關重要,但濫用可能會導致系統不安全或無法使用。
使用 root 使用者安裝系統字型的一個典型例子是:
sudo cp ~/Descargas/Underdog.ttf /usr/share/fonts/sudo chmod 644 /usr/share/fonts/Underdog.ttf
模式 644 這表示所有者(root)可以讀寫,而群組和其他使用者只能讀取。足以保證字體正常顯示,但又不會允許意外變更。
使用 root、sudo 和 su 時的最佳實踐
使用超級使用者權限進行操作絕非兒戲。如果您理解以下幾條準則,就能避免很多麻煩:
盡量減少您作為 root 使用者所花費的時間。。 美國 sudo comando 盡可能避免開啟持久的root會話。擁有完整權限的時間越短,出錯的可能性就越小。
務必避免使用 `sudo` 指令執行來源不明的腳本。如果您從網路上下載了一個腳本,而您首先看到的是“使用 `sudo` 運行此腳本”,請用文字編輯器開啟它並仔細閱讀。如果您不理解它的作用,請不要運行它。
使用測試環境(虛擬機器、容器)進行實驗。如果您要修改敏感設定、測試激進命令或執行不明確的腳本,請先在可以安全破壞的系統上進行操作。您可以找到有關虛擬機器和容器中安全虛擬化的指南。
當有多個管理員時,需要對 sudo 進行精細配置。對於只需要重新啟動服務的使用者和需要完全控制的使用者來說,情況並不相同。 /etc/sudoers 限制每個人能做的事情。
監控身份驗證日誌 (/var/log/auth.log o journalctl這樣一來,您就可以看到誰在使用 sudo,從哪裡使用,以及使用了哪些命令。這是一種檢測異常行為或權限濫用的簡單方法。
不要以 root 使用者身分瀏覽網路、開啟附件或執行桌面應用程式。如果您以超級使用者身分執行圖形應用程式時,該應用程式遭到入侵,那麼攻擊者就得逞了。
簡而言之,Linux 中的 root 權限是一個功能極其強大的工具,必須謹慎使用。了解其用途、何時使用 `sudo` 或 `su`、如何恢復或鎖定帳戶以及如何配置 `sudo`,將使您能夠安全自信地管理系統,充分利用 GNU/Linux 的靈活性,而無需每次打開終端都冒著生命危險。

