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 sudo
或 echo $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 进入服务器时找不到命令的主要内容,如果未能解决你的问题,请参考以下文章