网站搜索

在 Linux 上出现“sudo:未找到命令”错误?这是一个简单的修复方法


要点

  • 在 Debian 和 Ubuntu 上成为 root 用户(使用“su -”)并使用“apt install sudo”命令安装 sudo。
  • 以 root 用户身份使用“usermod -aG sudo username”(Debian/Ubuntu)或“usermod -aG Wheel username”(其他发行版)命令将您的用户添加到 sudo 组。
  • 如果 sudo 已安装但无法工作,请以 root 用户身份编辑“/etc/profile”文件,将其目录添加到 PATH 变量中。

尝试以超级用户身份使用第一个 Linux 命令并收到“sudo:命令未找到”错误?这是新 Linux 用户在全新安装后面临的最常见问题之一。以下是解决此问题并重新开始使用 sudo 命令的方法。

在本教程中,我将在 Debian 12 上演示所有内容。但是,您也会找到修复其他 Linux 发行版上的“sudo:命令未找到”错误所需的命令。

sudo 命令是什么?

Linux 上的 sudo 命令是短语“superuser do”的缩写,是一个功能强大的实用程序,允许用户以另一个用户(通常是 root)的权限执行命令。使用 sudo,授权用户可以执行管理任务,而无需以 root 用户身份登录。

使用 sudo 的方法是以“sudo”一词开始另一个命令。这允许您以提升的权限运行该命令。因此,sudo 命令可以让您拥有不同用户所需的权限并运行敏感命令。您可以从其手册页了解有关 sudo 命令的更多信息。

为什么会出现此错误?

Linux 上出现“sudo:命令未找到”错误通常有两种可能的原因。这可能是因为 sudo 未安装,或者 sudo 目录不存在于系统的 PATH 变量中。

某些 Linux 发行版默认情况下可能未安装 sudo 软件包。对于 Arch 和 Gentoo Linux 来说也是如此。在 Debian 上,如果您在安装过程中设置了 root 密码,那么您将面临同样的问题。

第二个原因是安装了sudo,但其目录未包含在PATH变量中。 PATH 是 Linux 系统用来定位命令而不指定其完整路径的环境变量。

当您在终端中键入命令时,系统会搜索 PATH 变量中列出的目录并尝试查找正确的可执行文件。如果 sudo 命令不在该 PATH 变量中,系统将找不到它并且无法使用它。

这是修复“sudo:找不到命令”错误的方法

如果您没有安装 sudo,安装它并将您的用户添加到 sudo/wheel 组应该足以解决问题。要确保您是否安装了 sudo,请运行:

sudo -V

如果您没有安装 sudo,您应该会看到类似的输出,在这种情况下,请继续执行以下方法。

在 Linux 上安装 sudo

要安装 sudo 软件包,您需要首先成为 root。要成为 root 用户,请打开终端并运行:

su -

输入 root 密码并按 Enter。如果成功,您应该看到 shell 提示符变成白色,并且提示符开头写有“root”一词。

作为 root 用户,您可以安装任何软件包,包括 sudo。要安装 sudo,请在基于 Debian 的发行版上运行以下命令:

apt install sudo

对于基于 RHEL 的系统,请使用以下命令:

yum install sudo

在 Arch Linux 上,运行:

pacman -S sudo

如果您使用 Gentoo,请使用以下命令:

emerge --ask app-admin/sudo

将您的用户添加到 sudo 组

安装 sudo 命令后,您需要将非 root 用户添加到 sudo 组。这是因为您想授予该用户超级用户权限。然后您的非 root 用户可以使用 sudo 命令来获得提升的权限。

要将用户添加到 sudo 组,请在基于 Debian 的发行版上运行以下命令:

usermod -aG sudo username

确保将命令中的“用户名”替换为正确的用户名。

如果您使用的是 Arch Linux、Fedora 或其他基于 RHEL 的发行版,请使用以下命令:

usermod -aG wheel username

最后,使用以下命令切换回非 root 用户:

su username

现在您可以尝试以 sudo 开头的命令来测试它是否有效。例如,让我们尝试更新系统上的软件包。为此,请使用:

sudo apt update

它按预期工作。

尝试将 sudo 添加到 PATH 变量

如果您已经安装了 sudo,但它仍然不起作用,那么您需要将 sudo 添加到 PATH 变量。我们首先确定sudo命令的位置。

which sudo

如您所见,它位于“/usr/bin/”目录中。现在让我们检查该目录是否在 PATH 变量中。运行这个命令:

echo $PATH

就我而言,sudo 命令的位置存在于 PATH 变量中。如果不是,您可以使用以下命令添加它:

export PATH=$PATH:/usr/bin

但是,这只会临时添加 sudo 命令的目录。结束终端会话后,一切将恢复原状。

要永久添加目录,请在文本编辑器中打开“/etc/profile”文件。要在 Nano 文本编辑器中打开它,首先输入 su - 成为 root 并使用以下命令:

nano /etc/profile

编辑声明 PATH 变量的行。添加冒号 (:),然后将路径附加到 sudo(本例中为“/usr/bin”。)

使用 Ctrl+O 保存文件,然后使用 Ctrl+X 退出编辑器。现在尝试使用 sudo 命令看看它是否有效。


这应该可以解决您的问题并让您使用 sudo 命令而不会出现任何错误。请记住,只有添加到 sudo 组的用户才能使用它。如果您想向更多用户授予 sudo 权限,请查看我们有关在 Linux 上控制 sudo 访问的指南。