我正在尝试部署 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
su
和sudo
是两个不同但相关的命令。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
让我困惑的是我仍然遇到visudo
and错误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 包中,只是不在PATH
for root 中:
# dpkg -S visudo
sudo: /usr/sbin/visudo
sudo: /usr/share/man/man8/visudo.8.gz
所以我将它添加到根目录中~/.bashrc
。
PATH=$PATH:/usr/sbin
现在它可以找到visudo
并且usermod
可以用来设置须藤使用权。