sudo:当我 ssh 进入服务器时找不到命令

sudo: command not found when I ssh into server

我是服务器处理和 Linux 的新手。我正在尝试在我的服务器上安装 composer,以便我可以将我的 Laravel 项目托管到它上面,如 Ultimate Guide: Deploy Laravel 5.3 App on LEMP Stack 中的教程中所述。我 ssh 进入服务器,当我 运行 sudo mv composer.phar /usr/local/bin/composer 安装 composer 后,我在终端收到一条消息:

-bash: sudo: command not found

我迫切需要一些刻意的帮助

如本 post 中所建议,您可能必须在您的服务器中安装 sudo。

为此,请使用以下命令以根用户身份登录:su -。然后用你的包管理器安装 sudo(如果你在 Ubuntu:apt-get install sudo)。

然后将您的用户添加到 sudo 组:usermod -aG sudo <username>

最后键入 exit 以退出根帐户并返回到您的用户。

Sudo 可能没有安装或不在您的路径中

  1. 检查你是否 root 在这种情况下不需要 sudo 除非你试图冒充另一个用户。只是 运行 你的命令没有 sudo mv composer.phar /usr/local/bin/composer

  2. 通过 运行ning which sudoecho $PATH 查看 sudo 是否是您的路径。如果 sudo 不在您的路径中,则您的路径变量可能已损坏。您可以尝试通过执行 sudo /usr/bin/sudo 或 运行ning locate sudo | grep bin 的公共位置来尝试找到它的位置来测试它。

  3. 如果您知道安装了 sudo,或者您的路径看起来损坏了,请尝试修复您的路径。检查您的发行版的 env 文件(/etc/environment in ubuntu)以确保其格式正确(脚本命令在此文件中是非法的)

  4. 如果您不是 root 并且您想要 运行 具有 root 权限的命令,那么您必须安装 sudo。但是如果你没有 sudo 并且你不是 root 那么你就无法安装它。在这种情况下,我建议使用 su

  5. 切换到 root 用户
  6. 如果您没有root密码并且您拥有这台机器,您可以通过https://askubuntu.com/questions/24006/how-do-i-reset-a-lost-administrative-password

  7. 等教程重置root密码
  8. 在您成功以 root 身份登录后,使用 apt-get update; apt-get install sudo 安装 sudo,因为您使用的是 Ubuntu.

  9. 使用 visudo 验证您的 sudoers 组的名称,并在需要时修改您的 sudoers 文件。 https://www.digitalocean.com/community/tutorials/how-to-edit-the-sudoers-file-on-ubuntu-and-centos

  10. 如果您已有一个 sudoers 组或创建了一个,您可以将自己添加到该组中。例如,如果您的 sudoers 组名为 sudo 运行 usermod -aG sudo myuser。基于 Ubuntu 的 Linux 默认情况下的 sudoers 组是 sudo。 sudoers 组条目如下所示:%sudo ALL=(ALL:ALL) ALL

如果您试图冒充另一个用户并且无法安装 sudo,您仍然可以使用 su 如果它已安装并且您拥有其他用户的权限/密码。

例如su someuser

尝试安装您的 sudo,方法是先以 root 身份登录 (su - ),然后尝试安装 **apt-get 或 yum sudo **。确保设置了路径变量,以便能够获取二进制文件。

哪个须藤

echo $PATH