我已经使用Turnkey Linux Redmine设置了VM,并且试图通过SSH进入服务器以安装更多项目。
它似乎无法识别sudo命令。每次尝试对某些内容进行sudo时,我都会收到一条错误消息:
-bash: sudo: command not found
我在其他地方读到键入“ whereis sudo”,输出为:
sudo:
我已经使用Turnkey Linux Redmine设置了VM,并且试图通过SSH进入服务器以安装更多项目。
它似乎无法识别sudo命令。每次尝试对某些内容进行sudo时,我都会收到一条错误消息:
-bash: sudo: command not found
我在其他地方读到键入“ whereis sudo”,输出为:
sudo:
Answers:
从http://www.turnkeylinux.org/redmine看起来像Redmine,与Ubuntu不同,默认情况下不使用sudo。您使用什么用户名进行SSH?如果是root
,那么您就不需要使用sudo
,因为SSH进入Redmine系统时所做的一切都像root
。如果还有其他类似的东西admin
,那么您可以尝试使用su
命令获取一个root
外壳程序,在其中运行命令root
。
首先登录到您的根帐户。然后
$ apt-get install sudo
将您现有的用户添加到组 sudo
$ sudo adduser <user> sudo
然后<user>
,您应该以身份登录,并且sudo
命令应该在那里。
尝试使用完整路径
/usr/bin/sudo
如果该命令有效,则在〜/ .bashrc的环境变量PATH中包含/ usr / bin /
echo "export PATH="$PATH:/usr/bin"" >> ~/.bashrc
希望工作..
/usr/bin
几乎肯定会在您的默认路径中。如其他答案和注释所示,该问题sudo
是根本没有安装该命令。
发生错误是因为您尝试从命令行调用的二进制文件仅是当前用户PATH变量的一部分,而不是root用户PATH的一部分。
您可以通过定位要访问的二进制文件的路径来验证这一点。就我而言,我试图称其为“ bettercap-ng”。所以我跑了
$ which bettercap-ng
output: /home/user/work/bin/bettercap
我检查了该位置是否是我的root用户的PATH的一部分。
$ sudo env | grep ^PATH
输出: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
所以sudo找不到我试图从命令行调用的二进制文件。因此返回未找到的错误命令。
调用如下所示的二进制文件时,可以指示sudo使用当前用户的PATH。
$ sudo -E env "PATH=$PATH" [command] [arguments]
实际上,可以使用别名:
$ alias mysudo='sudo -E env "PATH=$PATH"'
也可以将别名本身命名为sudo,以替换原始的sudo。
请参考此视频,了解逐步解决方案