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

Posted

技术标签:

【中文标题】sudo:当我 ssh 进入服务器时找不到命令【英文标题】:sudo: command not found when I ssh into server 【发布时间】:2017-11-10 14:41:11 【问题描述】:

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

-bash: sudo: command not found

我迫切需要一些深思熟虑的帮助

【问题讨论】:

你是否有机会以root 身份进入服务器? 如果没有,你试过用谷歌搜索吗?看起来这是一个很常见的问题。 不,我没有以 root 身份进入服务器。我尝试谷歌搜索但无法找到正确的解决方案 看起来sudo 只是未安装或不在您的路径中。 我该怎么办@nsilent22 ?? 【参考方案1】:

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

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

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

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

【讨论】:

【参考方案2】:

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

    检查您是否是root,在这种情况下不需要 sudo,除非您试图模拟其他用户。只需在没有 sudo mv composer.phar /usr/local/bin/composer

    的情况下运行您的命令

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

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

    如果您不是root,并且您想以 root 权限运行命令,那么您必须安装 sudo。但是,如果您没有 sudo 并且您不是 root,那么您将无法安装它。在这种情况下,我建议使用 su 切换到 root 用户

    如果您没有root密码并且您拥有机器,您可以通过https://askubuntu.com/questions/24006/how-do-i-reset-a-lost-administrative-password等教程重置root密码

    在您设法以 root 身份登录后,使用apt-get update; apt-get install sudo安装 sudo,因为您使用的是 Ubuntu。

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

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

如果您尝试模拟其他用户并且无法安装 sudo,您仍然可以使用 su(如果已安装并且您拥有其他用户的权限/密码)。

例如su someuser

【讨论】:

当我在没有 sudo 的情况下使用 mv composer.phar /usr/local/bin/composer 时,我收到一条消息,因为权限不可用 @SurajJeswara 您用于连接 ssh 的确切命令是什么?您使用的是哪个登录名?【参考方案3】:

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

哪个sudo

回显 $PATH

【讨论】:

以上是关于sudo:当我 ssh 进入服务器时找不到命令的主要内容,如果未能解决你的问题,请参考以下文章

使用 sudo 时找不到命令

使用 sudo 时找不到命令

使用 sudo 运行时找不到命令

SSH进入服务器,sudo稍后使用Phing

Jupyter notebook 在通过 /etc/rc.local 运行时找不到内核

git-upload-pack:克隆远程 Git 存储库时找不到命令