什么是 Linux 上的“root”?什么是 Linux 上的“root”?什么是 Linux 上的“root”?什么是 Linux 上的“root”?
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

什么是 Linux 上的“root”?

root 用户是 Linux 世界中最强大的实体,拥有无限的权力,无论好坏。创建用户?知道了。消灭文件系统?呵呵,也收到了。

起源故事

root 用户是 Linux 超级用户。从字面上看,他们可以做任何事情。 root 没有任何限制或禁区。他们是超级英雄还是超级恶棍取决于承担系统管理员职责的人类用户。 root 用户犯下的错误可能是灾难性的,因此 root 帐户应该专门用于管理目的。

root 用户的概念是从 Unix 继承而来的,它有一个 root 用户作为它的管理超级用户。但是“root”这个名字的来源并不确定。有些人认为它来自早于 Unix 的 Multics 操作系统。

肯·汤普森 (Ken Thompson) 和丹尼斯·里奇 (Dennis Ritchie) 是 Unix 最重要的两位架构师和作者,他们之前都曾在 Multics 上工作过。 Multics 有一个文件系统,它从一个叫做根目录或“/”的点开始,所有其他目录和子目录从根向下和向外分支,就像一棵倒置的树。它与 Unix 采用的树结构相同。那么,也许 Unix 也采用了 Multics 的根用户?

搜索 Multics 技术文档可以发现大量对根逻辑卷、根物理卷、根卡和根目录的引用。但是没有提到 root 用户帐户或名为“root”的用户。

另一种说法是,在早期的 Unix 中,超级用户的主文件夹是文件系统的根“/”。超级用户需要一个名字。 “root 用户”一词曾被用来代替官方名称,但这个词被保留下来并成为了官方名称。

这似乎更有可能,但似乎没有人能够确定 root 用户的名字是如何得来的。

须藤命令

在任何操作系统上,最佳做法是保留超级用户仅用于管理目的,其余时间使用普通用户帐户。事实上,大多数现代 Linux 发行版都不允许您以 root 用户身份登录。

当然,这是 Linux,因此您可以将其配置为允许 root 用户登录。但是您以 root 身份登录的时间越少越好。除了保护自己免受拼写错误造成的灾难外,如果您不能以 root 身份登录,其他人也无法登录。任何未经授权访问您的系统的人都将无法以 root 身份登录,从而限制了他们可能造成的损害。

但是,如果以 root 身份登录被禁用,您将如何管理您的 Linux 计算机?嗯,这就是 sudo 命令的用途。它不需要 root 用户登录。它暂时赋予你 root 的权力。这就像拿起雷神的锤子 Mjolnir 并暂时获得雷神的力量。但只有当你值得时,你才能拿起锤子。同样,不只是任何人都可以使用 sudo 命令。 sudo 命令仅在您被发现值得并添加到 sudoers 列表中时才赋予您 root 的权力。

还有一个类似于 sudo 的命令叫做 su。使用 sudo,您可以使用自己的密码进行身份验证。使用 su,您可以使用 root 用户的密码进行身份验证。这在两个方面具有重要意义。首先,这意味着您需要为 root 用户分配密码才能使用 su。默认情况下,root 用户没有密码,这有助于提高安全性。如果 root 没有密码,您将无法以 root 身份登录。

其次,如果您确实设置了 root 密码,那么将要使用 su 命令的每个人都需要知道该密码。共享密码是安全禁忌,对于 root 密码更是如此。任何知道 root 密码的人都可以告诉其他人。如果您需要更改 root 密码,您需要将新密码告知所有需要知道它的人。

使用 sudoers 列表来限制谁可以使用 sudo 并让每个有特权的人使用他们自己的密码进行身份验证要安全得多。

使用须藤

“/etc/shadow”文件包含 Linux 计算机上每个帐户的用户名,以及其他信息,包括每个帐户的加密密码、上次更改密码的时间以及密码过期的时间。因为它包含敏感信息,所以只能由 root 读取。

如果我们尝试使用 wc 命令读取影子文件中的行、词和字符,我们将被拒绝许可。

wc /etc/shadow

如果我们在 sudoers 列表中,并且我们在行的开头使用 sudo 相同的命令,系统将提示我们输入密码,并为我们执行该命令。如果您是 Linux 计算机上的唯一用户,系统安装时您将自动添加到 sudoers 列表中。

sudo wc /etc/shadow

因为我们以 root 身份运行命令,所以执行了 wc 命令。没有人否认根。

sudo 命令过去表示“超级用户执行”。它得到增强,允许您以任何用户身份运行命令,因此它被重命名为“替代用户执行”。该命令实际上被执行,就好像其他用户运行它一样。如果不指定用户名,sudo 默认使用 root。如果您希望使用不同的用户,请使用 -u(用户)选项。

通过whoami 命令,我们可以看到命令是以另一个用户的身份执行的。

whoami
sudo whoami
sudo -u mary whoami

以 root 身份运行而不使用 su

sudo 的问题在于您必须在每个命令的开头使用“sudo”。如果您只是键入一两个命令,那没什么大不了的。如果要执行的命令序列较长,可能会让人厌烦。这可能很烦人,但它确实是 root 的一个有用的安全装置,您必须每次都有意识地关闭安全装置。

有一种方法可以作为 root 有效地“登录”,它不使用 su 并且不需要 root 用户有密码。

使用 sudo 运行 Bash shell 打开一个新的 shell,用户为 root。

sudo bash

请注意,命令提示符发生了变化。提示符的最后一个字符现在是井号“#”而不是美元字符“$”。

命令提示符正文的显示方式因发行版而异。在 Ubuntu 中,我们被告知用户是 root 并显示计算机名称和当前工作目录。提示的颜色也发生了变化。

因为我们是 root,所以我们可以执行通常需要使用 sudo 的命令。

wc /etc/shadow

要退出 root 用户的 shell,请按“Ctrl+D”或键入“exit”并按“Enter”。

exit

少一些超人,多一些克拉克肯特

如果你在 sudoers 列表中,那么你对你的 Linux 系统拥有超能力。请记住,超人作为他温文尔雅的另一个自我的时间比他在他的红色斗篷中花费的时间更多。

尽可能使用您的常规用户帐户。只有在真正需要时才更改为 root。

©2015-2025 艾丽卡 support@alaica.com