在树莓派上以 root 用户身份登录

Jinku Hu 2023年1月30日
  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
作者: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

DelftStack.com 创始人。Jinku 在机器人和汽车行业工作了8多年。他在自动测试、远程测试及从耐久性测试中创建报告时磨练了自己的编程技能。他拥有电气/电子工程背景,但他也扩展了自己的兴趣到嵌入式电子、嵌入式编程以及前端和后端编程。

LinkedIn Facebook

相关文章 - Raspberry Pi