-bash:sudo:找不到命令

-bash:sudo:找不到命令

我正在尝试部署 django 应用程序。当我打印时 apt-get update 我看到

W: Unable to read /etc/apt/apt.conf.d/ - DirectoryExists (13: Permission denied)
W: Unable to read /etc/apt/sources.list.d/ - DirectoryExists (13: Permission denied)
W: Unable to read /etc/apt/sources.list - RealFileExists (13: Permission denied)
E: List directory /var/lib/apt/lists/partial is missing. - Acquire (13: Permission denied)
E: Unable to read /var/cache/apt/ - opendir (13: Permission denied)
E: Unable to read /var/cache/apt/ - opendir (13: Permission denied)
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?

当我打印时 sudo apt-get update 我看到

-bash: sudo: command not found

我尝试使用su而不是sudo.但这很奇怪。例如我打印su apt-get update 什么也没有发生我只看到一个新行,

(uiserver):u78600811:~$ su apt-get update
(uiserver):u78600811:~$

如果我尝试安装一些软件包也是如此。我该怎么办?

如果它是有用的信息 - 我正在使用 Debian

(uiserver):u87600811:~$ uname -a
Linux infong1559 3.14.0-ui16294-uiabi1-infong-amd64 #1 SMP Debian 3.14.79-2~ui80+4 (2016-10-20) x86_64 GNU/Linux

答案1

默认情况下 Debian 上未安装 sudo,但您可以安装它。首先启用su模式:
su -

通过运行以下命令安装 sudo:
apt-get install sudo -y

之后,您需要尝试使用用户和权限。将 sudo 权限授予您自己的用户。

usermod -aG sudo yourusername

确保您的 sudoers 文件添加了 sudo 组。运行:
visudo修改 sudoers 文件并将以下行添加到其中(如果缺少):

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

您需要重新登录或完全重新启动设备才能使更改生效。

答案2

susudo是两个不同但相关的命令。sudo未安装是不寻常的,但它可能根本不在您的路径中。尝试/usr/bin/sudo command

如果确实sudo不可用,您需要像您猜测的那样使用su,但它的工作方式与 不同sudo。使用它的最简单方法是运行:

su -

这将询问您root用户的密码,此时您可能应该apt install sudo注销 root shell,然后正常继续。

请注意,不像sudo,它要求你你的密码,su会询问您的密码。

答案3

由于它是商业服务器,您将无法访问 root 帐户,也无法使用 root 权限进行操作。这意味着您将无法运行sudo或安装软件包。您可以尝试做的是:

  • 检查您是否有权使用编译器并编译您自己和家庭空间所需的内容。

  • 检查是否可以运行虚拟机。这可能会让您运行操作系统的私有实例,您可以在其中安装软件包。

答案4

在新的 Debian 服务器安装中,我也发现sudo默认情况下没有安装,但可以以 root 身份完成:

$ su root
# apt install sudo

让我困惑的是我仍然遇到visudoand错误usermod

# visudo
bash: visudo: command not found

# apt install visudo
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package visudo

实际上,visudo它包含在 sudo 包中,只是不在PATHfor root 中:

# dpkg -S visudo
sudo: /usr/sbin/visudo
sudo: /usr/share/man/man8/visudo.8.gz

所以我将它添加到根目录中~/.bashrc

PATH=$PATH:/usr/sbin

现在它可以找到visudo并且usermod可以用来设置须藤使用权。

相关内容