在樹莓派上以 root 使用者身份登入

Jinku Hu 2023年1月30日 2022年5月18日
  1. Raspberry Pi OS 和 Root 帳戶中的一般訪問控制概念
  2. 從預設 pi 使用者以 Root 身份登入
  3. 在 Raspberry Pi OS 中為 root 使用者設定密碼
  4. 通過 SSH 會話訪問 root 使用者
在樹莓派上以 root 使用者身份登入

本文將介紹幾種在樹莓派作業系統上以 root 使用者登入的案例。

Raspberry Pi OS 和 Root 帳戶中的一般訪問控制概念

你可能已經知道,Raspberry Pi OS 是基於 Debian Linux 的,作業系統的許多核心部分對於系統管理員來說都具有相同的介面。

通常,一個基於 Linux 的系統可以有多個使用者,他們可以同時使用其上的資源而不會相互衝突。Linux 系統還定義了一個名為 root 的特殊管理使用者,它能夠操縱系統的各個方面。雖然,這種無限制的許可權引發了正確保護對它的訪問的問題,這就是為什麼某些 Linux 發行版(如 Raspberry Pi OS)預設禁用它的原因。

新安裝的 Pi OS 具有預設的 pi 使用者和密碼 raspberry。這些憑據用於在第一次啟動時登入。此外,在此階段,系統設定 GUI 提示將建議更改預設密碼。如果你在初始設定過程中錯過了這一步,你始終可以通過 CLI 使用 passwd 命令對其進行修改。

從預設 pi 使用者以 Root 身份登入

在這種情況下,我們假設你以 pi 使用者身份登入並有權訪問命令列介面。輸入以下命令以 root 使用者身份登入。

sudo su

上述方法應該可以在當前 Pi OS 版本上不需要任何密碼的情況下工作,假設直到此時還沒有完成相應的系統配置修改。請注意,sudo 命令用於將作業系統的普通使用者的許可權提升到超級使用者級別。這樣,單個命令(如 su)以 root 許可權執行,一旦它返回,控制權就會交還給普通使用者。這種技術被用作大型多使用者系統的安全措施,它有很多好處。

在這裡,我們基本上利用 sudo 提供的許可權來執行 su 命令,這會產生 root shell 訪問許可權。請注意,執行帶有 sudo 字首的命令本身就是普通使用者的特權,而 pi 使用者恰好在 Pi OS 中預設擁有該特權。一旦你訪問了 root shell,你就可以使用超級使用者許可權執行所有命令,完成後,你可以使用 Ctrl+D 快捷方式退出它。

在 Raspberry Pi OS 中為 root 使用者設定密碼

之前訪問 root 使用者的解決方案是一個小技巧,需要你首先以 pi 使用者身份登入,但我們可以有一個解決方案,即啟用 root 使用者並設定單獨的密碼。這首先需要 sudo 許可權進行配置。因此,我們需要從 pi 使用者執行以下命令:

sudo passwd root

此命令將提示輸入新密碼,然後再次重新輸入。因此,你可以從當前終端會話以 root 使用者身份登入,或者你可以登出並使用新的 root 憑據登入。請注意,你需要執行沒有 sudo 字首的 su 命令才能使用新密碼訪問 root shell。

通過 SSH 會話訪問 root 使用者

如果你按照上一條說明操作併為 root 使用者設定了單獨的密碼,則可以繼續執行下一個命令並允許通過 SSH 進行訪問。首先,你需要確定你的使用者是 pi 還是 root,你可以在 CLI 行的左側快速注意到這一點,或者通過執行 whoami 命令來檢索它。然後你可以根據當前登入的使用者執行以下命令之一:

pi 使用者:

sudo nano /etc/ssh/sshd_config

root 使用者:

nano /etc/ssh/sshd_config

這些命令使用 CLI 文字編輯器 nano 開啟 SSH 配置檔案,這是一個更適合 Linux/Unix 初學者的使用者友好介面。但是,你可以開啟此檔案以使用你熟悉的任何 CLI 文字編輯器(例如 Vim 或 Emacs)進行編輯。然後你應該尋找一行說:

#PermitRootLogin prohibit-password

現在,刪除 # 以取消註釋文字並將 prohibit-password 替換為 yes 字串。然後,通過單擊Ctrl+X 並輸入 Y 來儲存更改。此時,nano 將提示覆蓋給定檔案,你可以按Enter鍵確認。最後,你需要使用下一個命令重新啟動 SSH 服務以載入新配置:

pi 使用者:

sudo systemctl restart ssh

root 使用者:

systemctl restart ssh
Author: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn

相關文章 - Raspberry Pi