找不到Bash Sudo命令


33

我已经使用Turnkey Linux Redmine设置了VM,并且试图通过SSH进入服务器以安装更多项目。

它似乎无法识别sudo命令。每次尝试对某些内容进行sudo时,我都会收到一条错误消息:

 -bash: sudo: command not found

我在其他地方读到键入“ whereis sudo”,输出为:

 sudo:

Answers:


20

http://www.turnkeylinux.org/redmine看起来像Redmine,与Ubuntu不同,默认情况下不使用sudo。您使用什么用户名进行SSH?如果是root,那么您就不需要使用sudo,因为SSH进入Redmine系统时所做的一切都像root。如果还有其他类似的东西admin,那么您可以尝试使用su命令获取一个root外壳程序,在其中运行命令root


脚本具有sudo命令时该怎么办。用mkusb发生在我身上。最好安装sudo以便将来使用。
Love Grover

40

也许没有安装?打开软件包管理器并安装sudo软件包。


2
尚未安装!谢谢。我对Linux很陌生,只是假设它在所有安装中都已安装。我是否也需要sudo软件包或sudo-ldap?

2
您不需要sudo-ldap软件包。Sudo在我的计算机上可以正常工作,但我没有安装sudo-ldap。
2011年

6

首先登录到您的根帐户。然后

$ apt-get install sudo

将您现有的用户添加到组 sudo

$ sudo adduser <user> sudo

然后<user>,您应该以身份登录,并且sudo命令应该在那里。


5

尝试使用完整路径

/usr/bin/sudo

如果该命令有效,则在〜/ .bashrc的环境变量PATH中包含/ usr / bin /

echo "export PATH="$PATH:/usr/bin"" >> ~/.bashrc

希望工作..


4
这不太可能成为问题。/usr/bin几乎肯定会在您的默认路径中。如其他答案和注释所示,该问题sudo是根本没有安装该命令。
基思·汤普森

2

发生错误是因为您尝试从命令行调用的二进制文件仅是当前用户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。

请参考此视频,了解逐步解决方案

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.