在 Turnkey linux Ubuntu 安装中找不到“sudo”

eni*_*ent 4 sudo

刚刚安装了一个交钥匙 linux ubuntu/apache/tomcat vm 映像。在win7 上安装桥接网络适配器遇到一些麻烦之后,我想检查进出 vm 的网络访问。验证我可以从主机访问 vm 的 Web 服务器,并想测试我是否也可以从 vm 访问互联网,所以我在 shell cmd 行上执行此操作:

curl www.google.com
Run Code Online (Sandbox Code Playgroud)

哪个回应了这个:

-sh: curl: not found
Run Code Online (Sandbox Code Playgroud)

为了确保它没有破坏网络,我尝试了这个,并得到了相同的响应:

curl localhost
Run Code Online (Sandbox Code Playgroud)

这让我认为不是 curl 说它找不到请求的 url,而是 shell 说它找不到 curl cmd。所以我这样做了:

sudo apt-get install curl
Run Code Online (Sandbox Code Playgroud)

回应是:

-sh: sudo: not found
Run Code Online (Sandbox Code Playgroud)

所以现在我很困惑。须藤被安装,没有它,和apt-get?两者都是因为我认为它们是基础,而且因为如果你明白我的意思,没有它们你就无法安装任何其他东西。

这是一个安全问题,我的帐户(我刚刚通过 webmin 创建的)没有 sudo 的权限吗?我通过 webmin 将自己添加到第二组“sudo”,尽管我不确定这是否合法,注销并重新登录,没有变化,所以我取消了它。

我读到 /etc/sudoers 控制对 sudo 的访问,但据我从 cmd 行和 webmin 文本编辑器打开文件 dlg 中可以看出,它不存在。我需要创建它吗?必须这样做是正常的,还是系统缺陷?

或者是我无知的自己正在做或没有做的其他事情?

小智 7

虽然 Turnkey Linux 基于 Ubuntu(并且是二进制兼容的 - 事实上主要由 vanilla Ubuntu 包构建),但它并不是严格的 Ubuntu,并且有许多自定义。

因此,默认情况下,TKL 设备中未安装 sudo。在桌面上,禁用 root 帐户并使用 sudo 代替(因为默认情况下是 Ubuntu)是一个非常好的主意。IMO(和 TKL 开发人员)这个理由不适用于服务器。

使用此设置 sudo 通常不需要。对于一般管理员,只需使用 root(因此不需要 sudo)。如果您想要其他用户,您可能不希望他们拥有管理员 (sudo) 权限。

所以要安装 curl(或任何其他命令)只需省略 sudo 例如

apt-get install curl
Run Code Online (Sandbox Code Playgroud)

如果你想要 sudo 那么只需安装它

 apt-get install sudo
Run Code Online (Sandbox Code Playgroud)